Instalar paquetes con PackageKit desde CLI

Tradicionalmente, cada distribución Linux ha usado un gestor de paquetes:

  • Debian con apt-get.
  • RHEL/CentOS con yum.
  • Fedora ahora con dnf.
  • Arch con pacman
  • Etc.

Por ello, hace unos años surgió la iniciativa de PackageKit, un framework de gestión de paquetes que proporciona una capa de estandarización sobre ellos.

Continúa leyendo Instalar paquetes con PackageKit desde CLI

Cómo compilar automáticamente Sass en Odoo

El tutorial de cómo crear un tema para Odoo te explica cómo usar LESS como preprocesador de CSS.

Está bien, pero si te gusta programar en Python, probablemente te guste más Sass que LESS por su sintaxis (y quizá por otras razones). Pues bien, website_less también permite compilar Sass (y SCSS) automáticamente.

Continúa leyendo Cómo compilar automáticamente Sass en Odoo

Cómo forzar la instalación de documentación con yum/dnf

La imágen oficial de CentOS para Docker viene preconfigurada para no instalar la documentación al instalar paquetes. Puedes comprobarlo con:

$ docker run --rm centos grep tsflags /etc/yum.conf

Verás que te devuelve tsflags=nodocs. La documentación de yum.conf nos explica lo que hace la opción tsflags.

Lo que queremos hacer es deshabilitarla al instalar ciertos paquetes. Por ejemplo CUPS la necesita para mostrar su index.html. Lo instalaríamos así en nuestro Dockerfile:

Continúa leyendo Cómo forzar la instalación de documentación con yum/dnf

Instalar servidor LTSP en CentOS 6

Primero instala EPEL.

Asumo que tienes bien configurada tu tarjeta o tarjetas de red.

Ahora instala el servidor LTSP:

# yum install ltsp-server

Para evitar el error No such file or directory: /etc/sysconfig/firstboot:

# touch /etc/sysconfig/firstboot

Edita el fichero /etc/ltsp/ltsp-server.conf y cambia las líneas LTSP_DEV y LTSP_DEFAULTIP para que coincidan con los datos del servidor.

Crea el chroot para los clientes con:

# ltsp-build-client

Sigue los pasos que te indica. Ten paciencia, tarda un buen rato.

Unificaremos todos los ficheros de configuración en /etc/ltsp/lts.conf haciendo enlaces duros, porque es un rollo tener 3 diferentes y no saber cuál se usa en cada momento:

# rm -f /opt/ltsp/i386/etc/lts.conf
# ln /etc/ltsp/lts.conf /opt/ltsp/i386/etc/lts.conf
# rm -f /var/lib/tftpboot/ltsp/i386/lts.conf
# ln /etc/ltsp/lts.conf /var/lib/tftpboot/ltsp/i386/lts.conf

Seguramente más tarde tendrás que editar /etc/ltsp/lts.conf para configurar el servidor como te plazca, pero al menos solo tendrás que cambiar un fichero.

Usaremos el mismo método para compartir la configuración del teclado entre huésped y anfitrión:

# rm -f /opt/ltsp/i386/etc/sysconfig/keyboard
# ln /etc/sysconfig/keyboard /opt/ltsp/i386/etc/sysconfig/keyboard

Activa los servicios necesarios y desactiva el firewall (se hace todo solito con el siguiente comando):

# ltsp-server-initialize
# ltsp-server-initialize -y

Tal vez preferirías configurar el firewall a mano después, pero por el momento lo dejaremos así.

Si tienes otro servidor DHCP aparte, habrá que desactivar el que acabas de activar con ese comando:

# chkconfig dhcpd off
# chkconfig dhcpd6 off

Además, tendrás que configurar el otro servidor DHCP con estas directivas (asumiendo que el servidor esté en 192.168.0.9 y que usamos arquitectura i386 para los clientes ligeros):

  • 017 Ruta de acceso raíz: 192.168.0.9:/opt/ltsp/i386
  • 066 Nombre de host de servidor de inicio: 192.168.0.9
  • 067 Nombre de archivo de inicio: ltsp/i386/pxelinux.0

Modificamos un poquito el chroot para que no nos salga la pantalla de primer arranque cada vez que iniciemos un cliente ligero:

# ltsp-chroot
# chkconfig firstboot off
# exit

Configura la BIOS de otro ordenador de la red para arrancar por red, o usa una imagen de gPXE, enciéndelo, y a disfrutar de tu cliente ligero.

Cómo hacer funcionar la red de una máquina virtual CentOS tras clonarla en VMWare

El problema es que al clonar perdemos la conexión a Internet porque VMWare nos asigna una tarjeta de red con diferente UUID y MAC que la que tenía la máquina original.

También podría suceder si cambias la tarjeta de red en una máquina física.

Síntomas:

# ifup eth0
El dispositivo eth0 no parece estar presente, retrasando la inicialización

Solución:

# rm -f /etc/udev/rules.d/70-persistent-net.rules
# nano /etc/sysconfig/network-scripts/ifcfg-eth0

Ahí borra o comenta las líneas UUID y HWADDR, y guarda.

# service network restart

Corregir el fallo al crear conexión de puente en VirtualBox en Windows

Conecto una máquina virtual VirtualBox corriendo en un anfitrión Windows XP a un adaptador de red de puente, reinicio el invitado (un CentOS), y obtengo este error:

Fallo al abrir una sesión para la máquina virtual centos.

Failed to open/create the internal network ‘HostInterfaceNetworking-Intel(R) PRO/100 VE Network Connection’ (VERR_INTNET_FLT_IF_NOT_FOUND).

Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).

Código Resultado: E_FAIL (0x80004005)

Componente: Console

Interfaz: IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392}

Para resolverlo encuentro una solución muy tonta, pero que funciona:

  1. En el anfitrión Windows, ve a Panel de control -> Conexiones de red.
  2. Click derecho en la conexión a la que estás puenteando.
  3. Desmarca la casilla VirtualBox Bridged Networking Driver.
  4. Pulsa Aceptar.
  5. Si te sale un cartel avisando de unos controladores sin firmar, pulsa Continuar.
  6. Repite el paso 2.
  7. Vuelve a marcar la casilla VirtualBox Bridged Networking Driver.
  8. Repite los pasos 4 y 5.
  9. Ve a VirtualBox y arranca la máquina virtual.

Instalar Webmin en CentOS

Para quien quiera tener un servidor sin modo gráfico, Webmin es una magnífica herramienta que permite gestionar casi cualquier cosa de un servidor vía web. Siguiendo las instrucciones de su página web, lo instalaremos en un servidor CentOS.

# echo "[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1" > /etc/yum.repos.d/webmin.repo
# yum install webmin

Ahora se instalará y conectará al puerto 10000 por TCP, así que habrá que abrirlo desde el router, para lo cual he usado la sencilla interfaz del programa system-config-firewall-tui. Hecho esto, ve a la dirección de tu servidor desde un navegador, algo así como https://tu.servidor:10000, y sáltate la advertencia de error de certificado. Podrás acceder como root.

Permitir que otros usuarios accedan

Para ello, dentro de Webmin vamos al menú Webmin > Webmin Users y ahí podremos configurar todo lo que queramos.

En principio me bastará con entrar en Configure Unix User Authentication y marcar la casilla Allow users who can run all commands via sudo to login as root y guardar, claro que si no he instalado previamente el módulo perl(IO::Pty) me dará un error (fácilmente corregible con un yum install "perl(IO::Pty)").

Insatalar ownCloud en CentOS

Una vez montado el servidor CentOS 6 a mi gusto, ahora voy a configurar ownCloud a mi gusto también. Descargar repositorio comunitario de ownCloud, ya que no está en los de CentOS, e instalarlo:

# cd /etc/yum.repos.d
# wget http://download.opensuse.org/repositories/isv:/ownCloud:/community/CentOS_CentOS-6/isv:ownCloud:community.repo
# yum install owncloud-3rdparty

Crear una partición ext4 para los datos de ownCloud:

# lvm lvcreate --size 10G --name owncloud_data vg_srv
# mkfs -T ext4 /def/mapper/vg_srv-owncloud_data

Añadirla a fstab para que se monte automáticamente, y montarla:

# echo "/dev/mapper/vg_srv-owncloud_data /var/www/html/owncloud/data ext4 defaults 1 3" >> /etc/fstab
# mount /dev/mapper/vg_srv-owncloud_data

Asignarle corregir el usuario y permisos de la partición:

# chown apache:apache /var/www/html/owncloud/data
# chmod -R ug=rwx,o= /var/www/html/owncloud/data

Corregir el contexto SELinux (ponerle el mismo que el que tiene la carpeta config):

# chcon --reference /var/www/html/owncloud/config /var/www/html/owncloud/data