Algo de Linux: octubre 2016

sábado, 29 de octubre de 2016

Directorios de usuario en Linux

Los directorios de usuario son un conjunto de directorios localizados en $HOME, identificados por icons únicos, como por ejemplo Documentos, Descargas, Música, Escritorio,... que permiten al usuario organizar sus archivos.

Para crear un conjunto de directorios de usuario completamente localizados (es decir, en el idioma del usuario), el usuario puede ejecutar el siguiente comando:
$ xdg-user-dirs-update
Para forzar la creación de los directorios en inglés, por ejemplo, podríamos ejecutar el comando:
LC_ALL=C xdg-user-dirs-update
Básicamente dispondremos de los siguientes archivos para controlar los directorios de usuario:
  • /etc/xdg/user-dirs.defaults: En este fichero definiremos la configuración general para todos los usuarios.
  • ~/.config/user-dirs.dirs: En este fichero se almacena la configuración particular de cada usuario.
  • ~/.config/user-dirs.locale: En este fichero se almacena el idioma para crear los directorios en el idioma del usuario.
Tanto el fichero /etc/xdg/users-dir.defaults como el fichero ~/.config/users-dir.dir tienen la siguiente estructura:
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Escritorio"
XDG_DOWNLOAD_DIR="$HOME/Descargas"
XDG_TEMPLATES_DIR="$HOME/Plantillas"
XDG_PUBLICSHARE_DIR="$HOME/Público"
XDG_DOCUMENTS_DIR="$HOME/Documentos"
XDG_MUSIC_DIR="$HOME/Música"
XDG_PICTURES_DIR="$HOME/Imágenes"
XDG_VIDEOS_DIR="$HOME/Vídeos"

Podemos cambiar la ubicación de cada uno de los directorios para personalizarlo.

En cuanto al fichero ~/.config/user-dirs.locale, como ya hemos dicho, contiene el idioma del usuario:
es_ES
Esta semana, algunos usuarios me comentaron que en su escritorio aparecían todos los archivos del directorio $HOME. Echando un vistazo al fichero de configuración ~/.config/users-dir.dir, observé que algunos de ellos tenían la variable XDG_DESKTOP_DIR así:
XDG_DESKTOP_DIR="$HOME"
Para solucionarlo de la forma más rápida posible, he copiado un fichero users-dirs.dirs correcto al directorio .config de cada usuario:
# find /home/profesor -name ".config" -exec cp /root/utiles/user-dirs.dirs {} \;
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 28 de octubre de 2016

Borrrar fichero de configuración de xfce4 displays.xml

Al hilo del tema del post anterior, alguien me preguntaba si tenía que hacer un script en el servidor para borrar el archivo displays.xml de las cuentas de todos los profesores. Decir que no es necesario, puesto que con un find podemos borrarlo directamente:
# find /home/profesor/ -name "displays.xml" -exec rm -f {} \;
Si os dáis cuenta, le estamos diciendo a find:
  • Que busque dentro del directorio /home/profesor:  find /home/profesor/
  • los archivos cuyo nombre es displays.xml: -name "displays.xml"
  • y que los borre: -exec rm -f {} \;
Del mismo modo, podemos borrar cualquier otro fichero.
Publicado por primera vez en http://enavas.blogspot.com.es

Ficheros de configuración de xfce4

En xfce4, podemos establecer configuraciones de escritorio para nuestros usuarios en ficheros .xml ubicados en los siguientes directorios:
  • /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/
  • ~/.config/xfce4/xfconf/xfce-perchannel-xml/
La configuración establecida en el home del usuario (~/.config/xfce4/xfconf/xfce-perchannel-xml/) tiene prioridad sobre la establecida en /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/, por lo que podemos establecen configuraciones generales y configuraciones particulares.

Cada fichero  de configuración agrupa una serie de ajustes:
displays.xml
keyboards.xml
pointers.xml
thunar-volman.xml
xfce4-desktop.xml
xfce4-keyboard-shortcuts.xml
xfce4-mixer.xml
xfce4-panel.xml
xfce4-session.xml
xfce4-settings-manager.xml
xsettings.xml

Los ajustes de cualquier fichero se encuentran desbloqueados. Por ejemplo, si echáis un vistazo al fichero de configuración del panel (xfce4-panel.xml), veréis una línea como ésta:
<channel name="xfce4-panel" unlocked="root" version="1.0"></channel>
Si queréis bloquear los ajustes, tan sólo hay que modificarla de la siguiente manera:
<channel name="xfce4-panel" locked="*" unlocked="root" version="1.0"></channel>
Del mismo modo, podéis bloquear otros ajustes. Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 27 de octubre de 2016

pkgsync 1.31: Nuevas modificaciones

En esta nueva versión del paquete he realizado unas cuantas mejoras que me parecían interesantes:
  • Cambio la forma de esperar a que sinc_puppet termine para garantizar la espera tanto cuando sinc_puppet es iniciado desde pkgsync como cuando sinc_puppet es iniciado desde otro shell del sistema. ¿Por qué es necesario hacer ésto? Porque iniciamos sinc_puppet desde pkgsync, pero es posible que el sistema lo haya iniciado antes al levantar el interfaz de red.
  • Añado una nueva opción -c, --clean que permite hacer limpieza:
    • Eliminando dependencias de paquetes desinstalados
    • Purgando paquetes desinstalados
    • Limpiando la cache de paquetes
  • Añado también otra opción -p, --purge-old-kernels que permite eliminar todos los kernels instalados en el sistema, salvo los dos últimos (Opción por defecto). Esta opción utiliza el script purge-old-kernels de Dustin Kirkland que se instala también con el paquete pkgsync.
  • Añado una opción -S, --shutdown que permite apagar el sistema al terminar la ejecución de pkgsync. 
  • Añado una opción -R, --reboot que permite reiniciar el sistema al terminar la ejecución de pkgsync
  • He incorporado las opciones CLEAN y PURGE_OLD_KERNELS al fichero de configuración /etc/default/pkgsync para que puedan ser configuradas como opciones por defecto por parte del administrador.
# Defaults for pkgsync
#
# See /usr/share/doc/pkgsync/README.Debian for information about options
# of managing pkgsync.

# Ignorar ficheros de configuración musthave, mayhave o maynothave
IGNORE_MUSTHAVE="no"
IGNORE_MAYHAVE="no"
IGNORE_MAYNOTHAVE="no"

# Activar o desactivar pkgsync:
#  ENABLE="yes": activa pkgsync (opción por defecto)
#  ENABLE="no" : desactiva pkgsync
#  Si no existe la variable ENABLE o no tiene valor, es equivalente al valor 'yes'.
ENABLE="yes"

# Eliminar kernels antiguos (por defecto deja los dos últimos)
# PURGE_OLD_KERNELS="no": no elimina kernels antiguos (opción por defecto)
# PURGE_OLD_KERNELS="yes": elimina kernels antiguos
PURGE_OLD_KERNELS="no"

# Eliminar dependencias de paquetes desinstalados, purgar paquetes desinstalados y limpiar la cache
# CLEAN="no": no hacer limpieza (opción por defecto)
# CLEAN="yes": hacer limpieza
CLEAN="no"
Para consultar la ayuda de pkgsync:
# man pkgsync
Para consultar la ayuda de purge-old-kernels:
# man purge-old-kernels

Aquí podéis ver el código completo de pkgsync:

Y si queréis descargar el paquete que instala esta versión de pkgsync, aquí lo tenéis:
https://mega.nz/#!AxNAHYbJ!qPZC5EBLLPoaBqZ_Sh8Cr-nQLxgZDsmvGsgglt3ayoc
Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 26 de octubre de 2016

Establecer rEFInd como gestor de arranque por defecto en Windows

Si habéis instalado rEFInd y por alguna razón se ha cambiado el arranque por defecto, como ya vimos en el post anterior, podéis restablecerlo con tan sólo ejecutar script refind-mkdefault desde Linux (Siempre podéis arrancar Linux mediante Super Grub 2 Disk).

No obstante, si tan sólo os arranca Windows y os resulta más cómodo, podéis modificar la configuración de arranque de Windows mediante el editor de opciones de arranque bcdedit:
C:\Windows\System32> bcdedit /set "{bootmgr}" path \EFI\refind\refind.conf
Publicado por primera vez en http://enavas.blogspot.com.es

Establecer rEFInd como gestor de arranque por defecto en Linux

Desde la versión 0.10.3, rEFInd incorpora un script refind-mkdefault que nos permite establecerlo como gestor de arranque por defecto. Si habéis instalado rEFInd y por alguna razón se ha cambiado el arranque por defecto, siempre podéis restablecerlo simplemente con ejecutar:
# refind-mkdefault
Publicado por primera vez en http://enavas.blogspot.com.es

Establecer el monitor como pantalla primaria en lugar del proyector en SIATIC

Como todos sabéis, los instaladores montaron los SIATIC conectando el monitor a la salida VGA de la tarjeta gráfica y el proyector a la salida HDMI. Lo que demuestra que ni se había planificado ni se había probado nada antes de elegir el hardware.

Los equipos que forman parte del SIATIC tienen una tarjeta gráfica NVIDIA GT218:
# lshw -c video
  *-display               
       descripción: VGA compatible controller
       producto: GT218 [GeForce 210]
       fabricante: NVIDIA Corporation
       id físico: 0
       información del bus: pci@0000:01:00.0
       versión: a2
       anchura: 64 bits
       reloj: 33MHz
       capacidades: pm msi pciexpress vga_controller bus_master cap_list rom
       configuración: driver=nvidia latency=0
       recursos: irq:35 memoria:f6000000-f6ffffff memoria:e0000000-efffffff memoria:f0000000-f1ffffff ioport:e000(size=128) memoria:f7000000-f707ffff
Esta tarjeta gráfica da prioridad a la salida HDMI sobre la VGA y ésto nos crea un problema: Al establecerse el proyector como pantalla primaria, no se va a mostrar imagen en el monitor hasta que el sistema no haya terminado de arrancar completamente.

Como la tarjeta gráfica tiene, además de la salida VGA y la HDMI, una salida DVI, la solución es conectar el cable VGA del monitor a la salida DVI mediante un adaptador VGA-DVI:
Y configurar el servidor gráfico para que utilice la salida DVI en lugar de la VGA. Para ello, no tenemos más que crear un fichero de configuración como el siguiente:
/usr/share/X11/xorg.conf.d/10-monitor.conf
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"

    # HorizSync source: builtin, VertRefresh source: builtin
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "OTM Optoma WXGA"
    HorizSync       15.0 - 91.0
    VertRefresh     24.0 - 85.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 210"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-1"
    Option         "metamodes" "HDMI-0: 1920x1080 +0+0, DVI-I-0: 1920x1080 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Fijáos en una cuestión importante: El monitor está configurado en la salida DVI-I-0.
Teniendo en cuenta que en nuestros equipos hay dos tarjetas gráficas, es posible que el nombre de la salida (DVI-I-0) varíe. Para aseguraros de que salidas están conectadas podéis utilizar xrandr:
# xrandr | grep -i connected

DVI-I-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
VGA-0 disconnected primary (normal left inverted right x axis y axis)
DVI-I-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
Como podéis ver en la salida del comando, se encuentran conectadas las salidas DVI-I-0 y HDMI-0.

Por útlimo, decir que en la opción metamodes, podéis establecer la resolución que más os interese de las soportadas. Para ver qué resoluciones están soportadas, no tenéis más que ejecutar xrandr.
Publicado por primera vez en http://enavas.blogspot.com.es

Ajustar la resolución del menú de inicio de GRUB2 y de la consola

Para ajustar la resolución del menú de inicio de GRUB2 y de la consola, no tenemos más que añadir los siguientes valores al fichero de configuración /etc/default/grub:
GRUB_GFXMODE=1280x1024  # Pon la resolución que prefieras
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_TERMINAL_OUTPUT=gfxterm
Con GRUB_GFXMODE estamos estableciendo una resolución de 1280x1024 para el menú de inicio y con GRUB_GFXPAYLOAD_LINUX estamos diciendo a GRUB que mantenga el valor para la consola.

¿Cómo averiguamos los valores de resolución soportados para especificarlo en GRUB_GFXMODE?
Según la información de GRUB, tan sólo podemos usar valores soportados por nuestra tarjeta gráfica vía VBE.

Para saber qué valores soporta nuestra tarjeta, cuando se inicie GRUB, pulsamos la tecla "C" para acceder a la línea de comandos de GRUB.

Una vez en la línea de comandos, ejecutamos:
grub> videoinfo
Y obtendremos dichos valores.

Una vez modificado el fichero de configuración /etc/default/grub, ejecutamos:
# update-grub
Y listo.
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 25 de octubre de 2016

Los directorios de fuentes cyrillic, 100dpi, 75dpi no existen

Echando un vistazo al fichero /var/log/Xorg.0.log de mis SIATIC, observo que no existen las xfonts cyrillic, 100dpi, 75dpi:
[   130.734] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[   130.734]    Entry deleted from font path.
[   130.734] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not exist.
[   130.734]    Entry deleted from font path.
[   130.734] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not exist.
[   130.734]    Entry deleted from font path.
[   130.734] (WW) The directory "/usr/share/fonts/X11/100dpi" does not exist.
[   130.734]    Entry deleted from font path.
[   130.734] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
[   130.734]    Entry deleted from font path.
Por tanto, habrá que instalarlas:
# apt-get install xfonts-100dpi xfonts-75dpi xfonts-cyrillic
O más bien, añadirlas el musthave.ies de estos equipos.
  Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 24 de octubre de 2016

pkgsync 1.30: Nuevas modificaciones

En esta nueva versión del paquete he realizado dos modificaciones:

  • La primera comprueba si existe el ejecutable sinc_puppet. Si existe lo inicia y espera a que termine antes de realizar la actualización de paquetes. Esta mejora es importante porque permite garantizar que los ficheros de pkgsync se encuentran actualizados antes de ejecutarlo.
  • La segunda consiste en eliminar procesos detenidos.

Aquí podéis ver el código completo de pkgsync:

Y si queréis descargar el paquete que instala esta versión de pkgsync, aquí lo tenéis:
https://mega.nz/#!okcEmbpL!sVpqadEx249a8zXKFEEpp7zVUlQradKU9NiGvWYPPJ0
Publicado por primera vez en http://enavas.blogspot.com.es

Paquete linex-ubuntu-puppet 2.7

He creado una nueva versión del paquete linex-ubuntu-puppet (2.7) en el que incluido una mejora del script sinc_puppet.

A partir de una cierta versión del paquete, empezamos a utilizar un fichero de configuración para que el funcionamiento de sinc_puppet fuera configurable por el administrador sin tener que tocar el código del script. En este fichero de configuración se permite activar o desactivar la ejecución automática de sinc_puppet.

Posteriormente, añadí un nuevo parámetro -f que permitiera "forzar" la ejecución del script sinc_puppet mientras estaba desactivada la ejecución automática.

La cuestión es que en el fichero de configuración se puede establecer un SPLAYLIMIT para demorar la ejecución de puppet un tiempo con el fin de evitar que demasiados clientes ataquen al servidor y lleguen a saturarlo.

Lo que hecho ahora es añadir un nuevo parámetro "now" que, al forzar la ejecución de sinc_puppet, permita evitar el tiempo de espera definido en SPLAYLIMIT:
# sinc_puppet -f now
https://mega.nz/#!kxckSCrS!1YPL-ftFjoUiGa7r0I3bAdbVgWaNecEwywOh7q0T8CM
Publicado por primera vez en http://enavas.blogspot.com.es

Error rpc.idmapd[xxx]: main: open(/var/lib/nfs/rpc_pipefs/nfs): No such file or directory

Echando un vistazo al syslog de mis equipos, observo que hay un error que se repite con frecuencia:
Oct 20 13:40:22 a26-pro rpc.idmapd[966]: main: open(/var/lib/nfs/rpc_pipefs/nfs): No such file or directory
Oct 20 13:40:22 a26-pro rpc.idmapd[994]: main: open(/var/lib/nfs/rpc_pipefs/nfs): No such file or directory
La configuración NFS de mis clientes tiene activado el idmap:
# If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".

# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=

# Options for rpc.statd.
#   Should rpc.statd listen on a specific port? This is especially useful
#   when you have a port-based firewall. To use a fixed port, set this
#   this variable to a statd argument like: "--port 4000 --outgoing-port 4001".
#   For more information, see rpc.statd(8) or http://wiki.debian.org/?SecuringNFS
STATDOPTS=

# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=yes

# Do you want to start the gssd daemon? It is required for Kerberos mounts.
NEED_GSSD=
Si ejecuto rpc.idmapd manualmente, compruebo que el error me muestra que no existe el directorio /var/lib/nfs/rpc_pipefs/nfs:
# rpc.idmapd -fv
rpc.idmapd: libnfsidmap: using domain: valledeljerte3
rpc.idmapd: libnfsidmap: Realms list: 'VALLEDELJERTE3' 
rpc.idmapd: libnfsidmap: processing 'Method' list
rpc.idmapd: libnfsidmap: loaded plugin /lib/i386-linux-gnu/libnfsidmap/nsswitch.so for method nsswitch

rpc.idmapd: Expiration time is 600 seconds.
rpc.idmapd: Opened /proc/net/rpc/nfs4.nametoid/channel
rpc.idmapd: Opened /proc/net/rpc/nfs4.idtoname/channel
rpc.idmapd: main: open(/var/lib/nfs/rpc_pipefs/nfs): No such file or directory
Así que la solución será crearlo:
# mkdir -p /var/lib/nfs/rpc_pipefs/nfs
Publicado por primera vez en http://enavas.blogspot.com.es

Eliminar procesos detenidos

Podemos saber que un proceso se encuenta detenido si al ejecutar "ps auwx" muestra una "T" en la 
columna de estado (columna 8):
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT  START   TIME COMMAND
root         1  0.0  0.0  35568  5888 ?        Ss    oct22   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S     oct22   0:00 [kthreadd]
Sabiendo ésto, es fácil obtener el id de los procesos detenidos:
# ps auwx | awk 'NR>1 && $8 ~ "T" {print $2}'
Y eliminarlos:
# kill -9 $(ps auwx | awk 'NR>1 && $8 ~ "T" {print $2}')
Publicado por primera vez en http://enavas.blogspot.com.es

domingo, 23 de octubre de 2016

Eliminar la primera línea de un listado

En ocasiones, cuando combinamos comandos mediante tuberías, nos interesa quitar la primera línea de un listado porque es una cabecera que no queremos procesar. Por ejemplo, si ejecutamos:
# ps aux
Obtendremos una salida como la siguiente:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT  START   TIME COMMAND
root         1  0.0  0.0  35568  5888 ?        Ss    oct22   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S     oct22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S     oct22   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S     oct22   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S< oct22   0:00 [kworker/0:0H]
Para eliminar la primera línea, podemos usar el comando tail -n +2:
# ps aux | tail -n +2
root         1  0.0  0.0  35568  5888 ?        Ss    oct22   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S     oct22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S     oct22   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S     oct22   0:00 [kworker/0:0]
root         5  0.0  0.0      0     0 ?        S< oct22   0:00 [kworker/0:0H]
Publicado por primera vez en http://enavas.blogspot.com.es

sábado, 22 de octubre de 2016

Añadir máquinas a un dominio de Windows

Añadir máquinas a un dominio de Windows es sencillo:

Para empezar, pulsamos la siguiente combinación de teclas:

Y se nos mostrará el siguiente menú:


Hacemos clic en "Sistema" y se nos abrirá el siguiente cuadro de diálogo:


Hacemos clic en el enlace "Cambiar configuración" para cambiar el nombre del equipo del dominio al que vamos a añadirlo:


Se nos abrirá el cuadro "Propiedades del sistema":


Hacemos clic en el botón "Cambiar" y se nos mostrará el siguiente cuadro de diálogo donde introduciremos el nombre del equipo y el dominio al que queremos añadirlo:


Como podéis ver, he creado un dominio de Windows genérico al que he llamado instituto.extremadura.es. Además, he nombrado mis equipos de infolab siguiendo la norma que hemos venido utilizando desde hace tiempo: infolab01-o01, infolab01-o02, ...

Una vez escrito el nombre del equipo y el dominio, pulsamos el botón "Aceptar" y el sistema nos pedirá que introduzcamos el nombre de usuario y contraseña de una cuenta del dominio con permisos para agregar el equipo al dominio:


Introducimos una cuena de un administrador del dominio:


Y si los datos son correctos, el sistema nos informará de que el equipo se ha unido correctamente al dominio:


A partir de ese momento, los usuarios podrán iniciar sesión en el dominio y podremos aplicar a los equipos políticas de grupo para establecer ajustes, instalar software, etc...
Publicado por primera vez en http://enavas.blogspot.com.es

purge-old-kernels: Eliminar kernels antiguos

purge-old-kernels es una de esas herramientas que deberíamos tener instalada en nuestras máquinas Ubuntu sí o sí porque nos va a servir para hacer limpieza en nuestros equipos.

Su función es eliminar kernels antiguos. 

¿Por qué digo que deberíamos tenerla instalada? Principalmente porque con las sucesivas actualizaciones del sistema iremos acumulando kernels. Y, si a ésto le unimos que tengamos separado /boot en una partición con un tamaño limitado, llegará un momento, en el que la actualización del kernel de error y no se realice por falta de espacio en dicha partición.

Si queremos disponer de esta herramienta, en Ubuntu 14.04 y Ubuntu 16.04 al menos, deberemos instalar el paquete bikeshed, un paquete que instala un conjunto de herramientas:

# apt-get install bikeshed
Si ejecutamos el comando purge-old-kernels sin parámetros, por defecto se mantendrán como mínimo los dos últimos kernels, algo recomendable por seguridad:
# purge-old-kernels
Si queremos eliminar kernels antiguos, manteniendo un número determinado de ellos instalados, podemos indicarlo:
# purge-old-kernels --keep N
Por Ejemplo, si ejecutamos el siguiente comando, mantendríamos al menos los tres últimos kernels:
# purge-old-kernels --keep 3
Esta herramienta eliminará tanto los paquetes linux-image como los paquetes linux-headers correspondientes a los kernels que hayamos decidido eliminar. Publicado por primera vez en http://enavas.blogspot.com.es

Code Colorizer Formatter: Extensión de Libreoffice para colorear código

Code Colorizer Formatter es una extensión de Libreoffice que nos va a permitir colorear código escrito en los siguiente lenguajes: 
  • BASH
  • Basic
  • C++
  • Java
  • Perl
  • PHP
  • Python
  • R
  • SQL
  • XML
  • C#
  • Lisp
  • Object C
  • JavaScript
  • Ruby
  • Ensamblador 8085 y x86
Podéis descargar directamente la extensión desde aquí:

Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 21 de octubre de 2016

Eliminar un nombre de paquete de todos los ficheros musthave.ies de un directorio y sus subdirectorios

Para gestionar los paquetes que se instalan en las máquinas (servidores ltsp, portátiles y workstations) utilizamos pkgsync. Habitualmente distribuyo los ficheros de pkgsync mediante un módulo puppet que almacena los ficheros de pkgsync en diferentes directorios dentro del directorio de ficheros del módulo /etc/puppet/modules/pkgsync-ies/files

Cuando quiero quitar el nombre de un paquete de todos los ficheros musthave.ies, no tengo más que ejecutar una combinación de comandos como la siguiente:
# find /etc/puppet/modules/pkgsync-ies -name musthave.ies -exec sed -i 's|google-chrome-stable||g' {} \; -exec sort -o {} -u {} \;
Si examináis detenidamente el comando anterior, comprobaréis lo que hace:
  • Busca en el directorio /etc/puppet/modules/pkgsync-ies/files y sus subdirectorios todos los ficheros con nombre musthave.ies.
  • Elimina del archivo el nombre del paquete que queremos quitar.
  • Y ordena el fichero eliminando repeticiones. 
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 20 de octubre de 2016

Controlar el gateway por defecto en equipos con al menos dos interfaces de red

A veces tenemos equipos conectados a dos redes a la vez. Por ejemplo: Yo tengo montado un SIATIC que se encuentra al mismo tiempo: 
  • En la red del centro (VLAN Default) en la interfaz eth1.
  • En una VLAN específica para los equipos Infolab en la interfaz eth0.
Éste es el fichero de configuración de las interfaces de red:
# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp

auto eth0
iface eth0 inet dhcp
En casos como éste, debemos controlar cuál es el gateway por defecto. Una forma de hacerlo es eliminando la puerta de enlace de la interfaz que no nos interese tener:
# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp

auto eth0
iface eth0 inet dhcp
   post-up route del default dev $IFACE
De este modo, al eliminar el gateway de la interfaz eth0, quedará como puerta de enlace el gateway de la interfaz eth1.

Para comprobar el enrutamiento, no tenemos más que ejecutar:
# ip route
Publicado por primera vez en http://enavas.blogspot.com.es

Solicitar la introducción de un password en un shell script sin mostrarlo en pantalla

A veces consideramos obvio algo porque lo utilizamos con frecuencia, pero siempre hay quien lo desconoce, como por ejemplo, cómo solicitar desde un script que un usuario introduzca una contraseña sin que ésta se muestre en pantalla. Y es algo tan sencillo como desactivar el "echo", solicitar el password y volver a activarlo:
stty -echo
read -p "Password: " PASSWORD
stty echo
echo "\n"
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 18 de octubre de 2016

samba-tool: Crear un grupo

Crear un grupo con samba-tool es así de simple:
# samba-tool group add teachers
Pero si el grupo ya ha sido creado, la herramienta mostrará un error. En este caso, podría comprobar si el grupo ya existe, antes de crearlo:
# samba-tool group list | grep teachers || samba-tool group add teachers
Publicado por primera vez en http://enavas.blogspot.com.es

samba-tool: Comprobar si un grupo ya existe

Podemos comprobar si un grupo ya ha sido creado obteniendo un listado de grupos y filtrando con grep el identificador del mismo:
# samba-tool group list | grep students
Publicado por primera vez en http://enavas.blogspot.com.es

samba-tool: Comprobar si una cuenta de usuario ha sido creada

Para comprobar si una cuenta de usuario ya ha sido creada, podemos obtener un listado de usuarios y filtrar con grep el login del mismo:
# samba-tool user list | grep usuario
Publicado por primera vez en http://enavas.blogspot.com.es

samba-tool: Crear cuentas de usuario

Podemos crear cuentas en nuestro controlador de dominio Samba parseando el fichero xml de rayuela y creando las cuentas de usuario con el comando samba-tool
Un ejemplo:
# samba-tool user add usuario passw0rd --given-name='Esteban M.' --surname='Navas Martín' --mail-address='usuario@iesvalledeljerteplasencia.es'
User 'usuario' created successfully
Publicado por primera vez en http://enavas.blogspot.com.es

Proxmox: Iniciar, parar y comprobar el estado de una máquina virtual KVM desde la línea de comandos

En ocasiones podemos encontrarnos con que nuestras máquinas virtuales se encuentran paradas por el motivo que sea y disponemos de un acceso ssh pero no contamos con un acceso a la interfaz web de Proxmox. En este caso, podemos recurrir a qm, el gestor de máquinas virtuales de Qemu/KVM.

Tanto para iniciar una máquina virtual como para pararla o consultar su estado, necesito conocer el vmid (identificador de la máquina virtual). ¿Y qué es lo que puedo hacer para obtenerlo? Bueno, pues simplemente obtener un listado de las máquinas virtuales que tengo en Proxmox. Por ejemplo:
# qm list
      VMID NAME                 STATUS     MEM(MB)    BOOTDISK(GB) PID       
       100 pdc                  stopped    4096             100.00 0      
Como podéis comprobar, tan sólo tengo una máquina virtual en el servidor del ejemplo anterior, con identificador 100 y se encuentra parada.

Si quisiera iniciar la máquina virtual pdc con identificador vmid 100, tan sólo tendría que ejecutar el siguiente comando:
# qm start 100
Para comprobar que se encuentra arrancada, haría lo siguiente:
# qm status 100
status: running
Con lo que comprobaría que está corriendo.

Y si por alguna razón, quisiera parar la máquina virtual, no tendría más que hacer un:
# qm shutdown 100
Publicado por primera vez en http://enavas.blogspot.com.es

Módulo puppet para gestionar la configuración de la aplicación de control del SIATIC

Crear un módulo puppet que gestione la configuración de la aplicación de control del SIATIC es realmente trivial si hacemos uso del tipo definido por el usuario line.pp modificado que os mostré allá por julio:
/etc/puppet/modules/puppet_siaticcontrol/manifests/init.pp
class  puppet_siaticcontrol {

   line {"wifiFin":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "wifiFin=2",
      ensure => "variable"
   }

   line {"sonidoFin":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "sonidoFin=0",
      ensure => "variable"
   }

   line {"proyectorFin":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "proyectorFin=0",
      ensure => "variable"
   }

   line {"wifiInicio":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "wifiInicio=2",
      ensure => "variable"
   }

   line {"sonidoInicio":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "sonidoInicio=2",
      ensure => "variable"
   }

   line {"proyectorInicio":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "proyectorInicio=0",
      ensure => "variable"
   }

   line {"actualizarClaveWifi":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "actualizarClaveWifi=0",
      ensure => "variable"
   }

   line {"puntoAccesoActivo":
      file => "/etc/SIATIC/siaticcontrol.ini",
      line => "puntoAccesoActivo=0",
      ensure => "variable"
   }

}
Publicado por primera vez en http://enavas.blogspot.com.es

lunes, 17 de octubre de 2016

Firmware para eliminar el bloqueo de cartuchos compatibles en HP Officejet Pro X476dw

Parece que por fin HP ha publicado el firmware para eliminar el bloqueo de cartuchos compatibles en impresoras HP OfficeJet Pro de la serie X, entre las que se encuentran las nuestras (HP OfficeJet Pro X476dw):
  • HP OfficeJet Pro X451dn
  • HP OfficeJet Pro X451dw 
  • HP OfficeJet Pro X551dw 
  • HP OfficeJet Pro X476dn 
  • HP OfficeJet Pro X476dw 
  • HP OfficeJet Pro X576dw
Encontraréis el software que permite instalar el firmware en la página de soporte del producto para Windows, porque para Linux no se han molestado en publicar nada:
https://support.hp.com/pe-es/drivers/selfservice/hp-officejet-pro-x476-multifunction-printer-series/5276617

El proceso de instalación es sencillo: 

Cogemos un ordenador con Windows que se encuentre conectado a la red (un infolab, por ejemplo...).

Descargamos en él la aplicación que instala el firmware:


Y la ejecutamos:


A continuación, pulsamos el botón "Actualizar" para buscar impresoras en la red (En mi centro he configurado todas las HP x476dw como impresoras de red):  


El software descubrirá las impresoras de nuestra red:


Marcamos la casilla de aquellas en las que queramos actualizar el firmware y pulsamos el botón "Actualizar":


Comenzará el proceso de actualización del firmware:


Cuando termine de actualizarse, se nos mostrará un mensaje informándonos de que la impresora ha sido correctamente actualizada:

Publicado por primera vez en http://enavas.blogspot.com.es

Modificar las aplicaciones favoritas en el menú Whisker

Podemos modificar la lista de aplicaciones favoritas para todos los usuarios en el menú Whisker con tan sólo editar el fichero de configuración /etc/xdg/xfce4/panel/whiskermenu-1.rc:
# nano /etc/xdg/xfce4/panel/whiskermenu-1.rc
Y modificar el valor favorites:
favorites=exo-file-manager.desktop,exo-web-browser.desktop,evince.desktop
Añadiendo todos los lanzadores de /usr/share/applications que queramos incluir:
favorites=exo-file-manager.desktop,exo-web-browser.desktop,google-chrome.desktop,libreoffice-writer.desktop,evince.desktop,password.desktop
Publicado por primera vez en http://enavas.blogspot.com.es

Cambiar la posición del panel de XFCE (xfce4-panel)

Cambiar la posición del panel de xfce para todos los usuarios es muy sencillo. Tan sólo tenemos que editar el fichero de configuración /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml:
# nano /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
Y modificar la propiedad position:
<property name="position" type="string" value="p=8;x=840;y=945"></property>
Los valores de posición que podemos especificar son los siguientes:
  • p=12 : bottom border 
  • p=11 : upper border 
  • p=5 : left border 
  • p=1: right border 
  • p=8: bottom left corner 
  • p=6: upper left corner 
  • p=4: bottom right corner 
  • p=2: upper right corner 
  • p=0: free position
Si os fijáis en el ejemplo, tiene establecido un valor p=8, lo que significa que el panel se colocará en la esquina inferior izquierda. Si lo que queremos es colocarlo en la esquina superior izquierda, tan sólo tenemos que cambiar p=8 por p=6:
<property name="position" type="string" value="p=6;x=840;y=945"></property>
Publicado por primera vez en http://enavas.blogspot.com.es

OpenMediaVault: Cambiar la password de administrador del WebGUI

Cambiar la password de administrador del WebGUI de OpenMediaVault es muy sencillo: 

Primero.- Abrimos un terminal.

Segundo.- Ejecutamos la herramienta omv-firstaid:




Tercero.- Se nos mostrará un menú de opciones de primeros auxilios donde además de cambiar la contraseña del administrador, podemos configurar otras cosas como la red, restaurar un backup de la configuración, etc...


Cuarto.- Nos pedirá que introduzcamos la nueva contraseña y nos pedirá que la volvamos a escribir para asegurar que es correcta:


Y listo.
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 14 de octubre de 2016

Instalar Brackets en Ubuntu

La forma más sencilla de instalar Brackets en Ubuntu es usar el repositorio del webupd8team: ppa:webupd8team/brackets
# add-apt-repository ppa:webupd8team/brackets
# apt-get update
# apt-get install brackets
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 13 de octubre de 2016

Instalar Brackets en Debian Jessie

Brackets es un excelente editor de código abierto disponible para Windows, Linux y Mac creado por Adobe que dispone de soporte para HTML, CSS y JavaScript.
Además de ser ligero, tiene interesantes funciones como la vista previa de código la edición rápida o el autocompletado.

Para instalar Brackets en Debian Jessie, primero bajaremos una librería de Debian Wheezy que en Jessie ya no se encuentra disponible:
# wget http://security.debian.org/debian-security/pool/updates/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u5_amd64.deb
Una vez descargada, la instalamos:
# dpkg -i libgcrypt11_1.5.0-5+deb7u5_amd64.deb
A continuación descargamos el paquete Debian de Brackets de 64 bits, si nuestro sistema es de 64 bits:
# wget https://github.com/adobe/brackets/releases/download/release-1.7/Brackets.Release.1.7.64-bit.deb
Y lo instalamos:
# dpkg -i Brackets.Release.1.7.64-bit.deb
Y si nuestro sistema es de 32 bits, descargamos la versión de 32 bits:
# wget http://security.debian.org/debian-security/pool/updates/main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u5_i386.deb
Una vez descargada, la instalamos:
# dpkg -i libgcrypt11_1.5.0-5+deb7u5_i386.deb
Descargamos la versión de 32 bits de Brackets:
# wget https://github.com/adobe/brackets/releases/download/release-1.7/Brackets.Release.1.7.32-bit.deb
Y la instalamos:
# dpkg -i Brackets.Release.1.7.32-bit.deb
Publicado por primera vez en http://enavas.blogspot.com.es

Solucionar problema "Soft blocked" en interfaz wifi de portátiles HP x360 con Ubuntu 14.04

Empezando a configurar los portátiles HP x360, veo que cada vez que enciendo uno, la interfaz wifi se encuentra bloqueada por software:
# rfkill list all
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no

1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no

2: acer-wireless: Wireless LAN
Soft blocked: yes
Hard blocked: no
Para solucionar el problema, lo que he hecho ha sido hacer un blacklist al módulo acer-wmi:
# echo "blacklist acer-wmi" >> /etc/modprobe.d/blacklist.conf
Y listo. Publicado por primera vez en http://enavas.blogspot.com.es

Se encontró un error al cargar /root/.profile

Si al entrar como root en una sesión gráfica de vuestro Ubuntu encontráis el siguiente error:
Se encontró un error al cargar /root/.profile
stdin: is not a tty

Tan sólo tenéis que editar el fichero /root/.profile y cambiar la línea que dice:
msg n
por:
tty -s && mesg n
Publicado por primera vez en http://enavas.blogspot.com.es

miércoles, 12 de octubre de 2016

Configurar APN de Lowi en Xiaomi para acceder a internet

En la página de Lowi nos informan de que configurar la conexión de datos en un Xiaomi consiste en definir dos datos del APN:
  • Nombre de APN: Lowi.es 
  • APN: lowi.private.omv.es 
Sin embargo, no es suficiente. 

Para configurar la conexión de datos de Lowi, tendremos que:
  • Activar la itinerancia.
  • Crear un nuevo APN con los siguientes datos como mínimo: 
    • Nombre: Lowi.es
    • APN: lowi.private.omv.es 
    • Proxy: No definido 
    • Puerto: No definido 
    • Nombre de usuario: wap@wap 
    • Contraseña: wap125 
    • Servidor: No definido 
    • MCC: 214 
    • MNC: 06 
    • Tipo de autentificacion: PAP 
    • Tipo APN: No definido 
    • Protocolo APN: IPv4 
    • Protocolo APN en itinerancia: IPv4 
    • APN Activar/Desactivar: APN Activado 
    • Portador: No especificado 
    • Tipo de MVMO: IMSI 
    • Valor de MVNO: 2140606 
Publicado por primera vez en http://enavas.blogspot.com.es

domingo, 9 de octubre de 2016

ubuntu-restricted-extras: Instalar codecs y fuentes en Ubuntu

Después de instalar un sistema Ubuntu, una de las cosas que se considera imprescindible hacer es añadir codecs de audio y video, plugins, fuentes, etc... Para ello, instalaremos como mínimo el paquete ubuntu-restricted-extras que nos proporciona:
  • codecs de audio (GStreamer plugins)
  • software para instalar fuentes de Microsoft
  • El plugin de Adobe Flash
  • El software LAME, para realizar conversiones de audio.
Si tenemos Ubuntu, instalaremos el paquete ubuntu-restricted-extras:
# apt-get install ubuntu-restricted-extras
Si tenemos Xubuntu, instalaremos el paquete xubuntu-restricted-extras:
# apt-get install xubuntu-restricted-extras
Si tenemos Kubuntu, instalaremos el paquete kubuntu-restricted-extras:
# apt-get install kubuntu-restricted-extras
Si tenemos Lubuntu, instalaremos el paquete lubuntu-restricted-extras:
# apt-get install lubuntu-restricted-extras
Publicado por primera vez en http://enavas.blogspot.com.es

Reproducir DVD's en Ubuntu 16.04 (xenial)

Al igual que en Ubuntu 14.04 y en cualquier otra distribución, para reproducir DVD's básicamente necesitamos instalar tres librerías: 
  • libdvdcss2: para reproducir los DVD.
  • libdvdread4: para leer el contenido de los DVD.
  • libdvdnav4: para navegar por los DVD.
Tanto libdvdread4 como libdvdnav4, se encuentran empaquetadas en los repositorios universe de xenial. Y libdvdcss2 se encuentra en los repositorios multiverse.
Así que, teniendo ambos repositorios añadidos es muy fácil instalarlas:
# apt-get install libdvdread4 libdvdnav4 libdvd-pkg
Como podéis imaginar:
  • libdvdread4 se instala con el paquete libdvdread4.
  • libdvdnav4 se instala con el paquete libdvdnav4.
  • libdvdcss2 se instala con el paquete libdvd-pkg.
Publicado por primera vez en http://enavas.blogspot.com.es

Reproducir DVD's en Ubuntu 14.04 (trusty)

Para reproducir DVD's básicamente necesitamos instalar tres librerías: 
  • libdvdcss2: para reproducir los DVD.
  • libdvdread4: para leer el contenido de los DVD.
  • libdvdnav4: para navegar por los DVD.
Tanto libdvdread4 como libdvdnav4, se encuentran empaquetadas en los repositorios universe de trusty.  Así que es muy fácil instalarlas:
# apt-get install libdvdread4 libdvdnav4
Sin embargo libdvdcss2 no se encuentra en estos repositorios. Así que lo instalaremos desde los repositorios de Videolan; lo que significa que primero tendremos que añadir dichos repositorios y después instalarlo:
# echo "deb http://download.videolan.org/pub/ubuntu/trusty/ /" | sudo tee /etc/apt/sources.list.d/libdvdcss.list
# wget -O - http://download.videolan.org/pub/ubuntu/videolan-apt.asc | sudo apt-key add -
# apt-get update
# apt-get install libdvdcss2
Publicado por primera vez en http://enavas.blogspot.com.es

sábado, 8 de octubre de 2016

Controlar la ejecución de tareas programadas mediante cron

Cron permite controlar qué usuarios pueden o no pueden usar los servicios de cron mediante los siguientes archivos: 
  • /etc/cron.allow 
  • /etc/cron.deny 
Cada usuario tiene su propio crontab y éste se encuentra almacenado en el directorio /var/spool/cron/crontabs en un fichero cuyo nombre es el login del usuario.

Para impedir que un usuario utilice cron (para ser más exactos, el comando crontab), tan sólo tenemos que agregar su nombre de usuario al archivo /etc/cron.deny.

Para permitir que un usuario utilice cron (el comando crontab), tan sólo tenemos que agregar su nombre de usuario al archivo /etc/cron.allow.

Si el fichero /etc/cron.allow existe, sólo los usuarios listados en este fichero (uno por línea) podrán usar crontab. 

Si el fichero /etc/cron.allow no existe, todos los usuarios podrán usar crontab, a menos que se encuentren listados en el fichero /etc/cron.deny.

Ahora bien, en ocasiones, puede que no me interese usar este mecanismo para impedir la ejecución de crontabs de usuario. En ese caso, podría hacer otra cosa: Modificar los permisos del fichero crontab del usuario en cuestión para que no se ejecute. Por ejemplo, supongamos que en un momento determinado no quiero que se realicen las tareas programadas del usuario root en /var/spool/cron/crontabs/root. Tan sólo tendría que hacer lo siguiente:
# chmod 0 /var/spool/cron/crontabs/root
Si posteriormente quiero volver a permitir la ejecución de dichas tareas, no tengo más que restablecer los permisos de nuevo:
# chmod 600 /var/spool/cron/crontabs/root
Publicado por primera vez en http://enavas.blogspot.com.es

viernes, 7 de octubre de 2016

Instalar kernel y headers en Ubuntu

Si queréis instalar el kernel y los headers en Ubuntu, tan sólo es necesario instalar un paquete.  Por ejemplo, supongamos que queremos instalar el kernel y los headers de Xenial en Ubuntu 14.04:
# apt-get install linux-generic-lts-xenial
Al instalar este paquete estaremos instalando tanto el kernel como los headers:
  • linux-image-generic-lts-xenial
  • linux-headers-generic-lts-xenial
Publicado por primera vez en http://enavas.blogspot.com.es

Desactivar mensajes de HWE (Hardware Enablement Stack)

En el post anterior, hemos visto qué es HWE y cómo controlar sus actualizaciones, pero si lo que queremos es desactivar los mensajes que nos informan de que hay nuevas actualizaciones, no tenemos más que crear el siguiente fichero testigo: /var/lib/update-notifier/disable-hwe-eol-messages
# touch /var/lib/update-notifier/disable-hwe-eol-messages
Publicado por primera vez en http://enavas.blogspot.com.es

WARNING: Security updates for your current Hardware Enablement Stack ended on 2016-08-04

Si os habéis conectado mediante ssh a vuestros Ubuntu 14.04 LTS como administrador, habréis visto que muestran un mensaje como el siguiente:
WARNING: Security updates for your current Hardware Enablement Stack
ended on 2016-08-04:
 * http://wiki.ubuntu.com/1404_HWE_EOL
There is a graphics stack installed on this system. An upgrade to a
configuration supported for the full lifetime of the LTS will become
available on 2016-07-21 and can be installed by running 'update-manager'
in the Dash.
En cualquier caso, si no lo habéis visto, siempre podéis ejecutar el siguiente comando para comprobar el estado de vuestro HWE:
# hwe-support-status
Y os preguntaréis: ¿Qué significa ésto? Ubuntu Hardware Enablement Stacks (HWE) es una característica diseñada para proporcionar a una distribución Ubuntu LTS soporte hardware introducido en versiones posteriores de Ubuntu. Para más información os recomiendo echar un vistazo al siguiente artículo del wiki de Ubuntu:

Sabiendo ésto, comprenderéis lo que significa el mensaje: Que el soporte HWE para nuestro Ubuntu 14.04 terminó el 04/08/2016

Si queréis solucionar el problema, tenéis tres opciones:
  1. Actualizar HWE a Ubuntu 16.04 (kernel versión 4.4)
  2. Actualizar a Ubuntu 16.04 LTS
  3. Realizar una instalación desde 0 de Ubuntu 16.04 LTS
Como por el volumen de trabajo es demasiado alto, el curso ha empezado y todo está en marcha, no me parece muy viable ni la segunda ni la tercera opción. Así que he optado por actualizar HWE a Ubuntu 16.04 mediante pkgsync.

Antes de actualizar HWE, determinaremos qué paquetes es necesario actualizar en nuestro sistema:
# hwe-support-status --show-replacements
Y obtendremos una salida similar a la siguiente:
xserver-xorg-lts-xenial linux-generic-lts-xenial linux-image-generic-lts-xenial libgl1-mesa-glx-lts-xenial libwayland-egl1-mesa-lts-xenial
Esto quiere decir que tendremos que instalar esos paquetes en nuestro sistema.

¿Y cómo lo hacemos? 
  • Incluyendo los nombres de los paquetes "-xenial" indicados en un fichero musthave
    • xserver-xorg-lts-xenial linux-generic-lts-xenial linux-image-generic-lts-xenial libgl1-mesa-glx-lts-xenial libwayland-egl1-mesa-lts-xenial
  • Y quitando los paquetes correspondientes de "-vivid" de los ficheros musthave:
    • xserver-xorg-lts-vivid linux-generic-lts-vivid linux-image-generic-lts-vivid libgl1-mesa-glx-lts-vivid libwayland-egl1-mesa-lts-vivid
Una vez instalados los nuevos paquetes, si ejecutamos:
# hwe-support-status
Comprobaremos que nuestro HWE ha sido actualizado:
Your Hardware Enablement Stack (HWE) is supported until April 2019.
Publicado por primera vez en http://enavas.blogspot.com.es

jueves, 6 de octubre de 2016

Paquete linex-ubuntu-puppet 2.6

A veces pienso en lo productivo que sería poder centrarme en administrar el sistema... Es difícil trabajar en analizar, desarrollar, testear,  etc... cuando cada poco tiempo te avisan y tienes que estar cambiando de tema.

Enfin... He creado una nueva versión del paquete linex-ubuntu-puppet (ya la 2.6) en el que he realizado las siguientes modificaciones:
  • La más importante consiste en modificar el script /usr/sbin/sinc_puppet para evitar que se inicien varias instancias al levantar las interfaces de red. De otro modo, el script se va a lanzar una vez por cada una de las interfaces de red que se levantan. 
  • Por otra parte, he corregido un bug por el que, en ocasiones,  no se almacenaba el certname del cliente en el fichero de configuración /etc/puppet/puppet.conf 
  • Por último, he añadido como dependencias, los paquetes lockfile-progs, uuid-runtime para garantizar que se encuentren instaladas las herramientas que usa el script.
https://mega.nz/#!NpkThKpb!-X324VvW5erObzKs3qz0d4RnJE5kqSAtsfLlKgpA0pU
Publicado por primera vez en http://enavas.blogspot.com.es

martes, 4 de octubre de 2016

Instalar Lyx en Ubuntu

Podemos instalar Lyx:
  • Desde los repositorios oficiales de Ubuntu.
  • Desde repositorios ppa mantenidos por Liviu Andronic y Rob Oakes.:
    • stable ppa.
    • daily ppa.
Usar los repositorios ppa nos permitirá disponer de una versión más reciente de Lyx, pudiendo elegir entre tener la versión estable (stable) o la última publicada (daily).

Veamos cómo instalar Lyx desde el repositorio ppa stable:

Primero.- Si tenemos instalada una versión de los repositorios oficiales, la desinstalamos: 
# apt-get remove lyx
Y eliminamos las dependencias:
# apt-get autoremove
Segundo.- Añadimos el repositorio ppa:
# add-apt-repository ppa:lyx-devel/release
Actualizamos índices:
# apt-get update
E instalamos:
# apt-get install lyx
Publicado por primera vez en http://enavas.blogspot.com.es