Slackware

Lanzada en 1993, Slackware Linux de Patrick Volkerding es un sistema operativo avanzado, diseñado con las metas gemelas de facilidad de uso y estabilidad, como prioridades principales. Incluye el software popular más reciente mientras mantiene un sentido de tradición, Slackware pone lo mejor de los mundos sobre la mesa.

Ha sido mi distro favorita desde que empecé a usar Linux, simplicidad y elegancia en mi opinión son sus puntos fuertes. Slackware es una distribución muy en la línea de los BSD que rara vez me ha dado algún problema en la instalación; no es una distribución de ‘‘point & click’’ pero es bastante sencilla si se lee la documentación.

Instalación

#

Los siguientes comandos se ejecutan desde el directorio que contiene el archivo ChangeLog.txt y /tmp, respectivamente.

mkisofs -o /tmp/slackware-dvd.iso \ -R -J -A “Slackware Install” \ -hide-rr-moved \ -v -d -N \ -no-emul-boot -boot-load-size 4 -boot-info-table \ -sort isolinux/iso.sort \ -b isolinux/isolinux.bin \ -c isolinux/isolinux.boot \ -m ‘kde-l10n-*.tar.bz2’ \ -V “SlackDVD” . }}}

#

Me ví en la necesidad de migrar mi instalación de ‘'’Slackware64 Current’’’ a un disco duro de mayor capacidad, el disco original ‘‘/dev/sda’’ estaba dividido en 3 particiones, dos de estas con formato ‘'’btrfs’’’, la intención era agregar discos y usar ‘'’btrfs + RAID1’’’ pero al final no me animé, ya es bastante vivir en la orilla siguiendo ‘'’current’’’, por lo tanto decidí usar LVM con ext4 en el nuevo disco.

pvcreate /dev/sdb2 vgcreate myvg /dev/sdb2 lvcreate -L 6G -n root myvg }}}

Instalación mínima

’'’Series de paquetes a, l, n’’’

Software no incluido en la distribución

  • Sphinx
  • opencv
  • davfs2
  • octave
  • postgresql/postgis
  • node
  • nginx
  • mongodb

Slackpkg

  • Edit ‘‘/etc/slackpkg/mirrors’’
  • Run ‘‘slackpkg update’’

Migración de Disco Duro

chroot /orig cd /boot mkinitrd -c -k 3.2.29 -m ext4 -f ext4 -r /dev/myvg/root -L }}}

image initrd root label read-only }}}

Slackbuilds.org

#

Herramienta de línea de comandos basada en diálogos para interactuar con SlackBuilds.org, un repositorio de scripts para compilar paquetes de Slackware.

Edita ‘‘/etc/sbopkg/sbopkg.conf’’ para que refleje la versión de Slackware

REPO_BRANCH=${REPO_BRANCH:-14.1} }}}

Multilib

Slackware64 viene preparado para convertirse en un sistema verdaderamente multilib, capáz de ejecutar binarios de 64bit y también de 32bit. Slackware64 sigue el FHS colocando las bibliotecas de 64bit en /lib64 y /usr/lib64 y las bibliotecas de 32bit en /lib y /usr/lib.

  • Descarga los paquetes de http://connie.slackware.com/~alien/multilib/

upgradepkg –reinstall –install-new *.t?Z }}} Este comando también instala un paquete adicional compat32-tools

  • Instala las bibliotecas de 32bit de Slackware

upgradepk –install-new slackware64-compat32/-compat32/.t?z }}}

#

mkdir slackware64-compat32 ; cd slackware64-compat32 massconvert32.sh -i /srv/ftp/slackware/slackware-14.0/slackware }}}

/!\ Si utilizas un administrador de paquetes (ej. slackpkg), agrega ‘'’gcc’’’ y ‘'’glibc’’’ en la lista negra, de lo contrario se corre el riesgo de que slackpkg actualize las versiones multilib por las originales de 64bit. En Slackware 13.37 y posteriores slackpkg soporta expresiones regulares en el archivo de blacklist, la siguiente línea en ‘‘/etc/slacpkg/blacklist’’ será suficiente.

[0-9]+alien }}}

Convertir ext3/4 a btrfs

fsck.ext3 /dev/sda5

btrfs-convert /dev/sda5 }}}

Linux Containers (lxc)

#

Las opciones de red en LXC son ‘‘Bridge’’ y ‘‘NAT’’, en la primera los contenedores se encuentran en el mismo segmento de red que el Host, en la segunda opción los contenedores se encuentran en una red privada con acceso a la Internet vía NAT. En los ejemplos siguientes ‘‘chuckd.conf’’ es el archivo de configuración para los contenedores, dependiendo del tipo de red que desees.

#

/sbin/ifconfig eth0 down /sbin/brctl addbr br0 /sbin/brctl setfd br0 0 /sbin/ifconfig br0 192.168.1.5 netmask 255.255.255.0 promisc up /sbin/brctl addif br0 eth0 ifconfig eth0 0.0.0.0 up route add default gw 192.168.1.1 echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/br0/proxy_arp }}}

chuckd.conf

lxc.network.type lxc.network.flags lxc.network.link lxc.network.hwaddr lxc.network.ipv4 lxc.network.name }}}

#

/sbin/brctl addbr br0 /sbin/brctl setfd br0 0 /sbin/ifconfig br0 192.168.2.1 netmask 255.255.255.0 promisc up echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/conf/br0/proxy_arp

/usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -p tcp –dport 51 -i eth0 -j DNAT –to 192.168.2.10:51 iptables -t nat -A PREROUTING -p tcp –dport 80 -i eth0 -j DNAT –to 192.168.2.10:80 }}}

chuckd.conf

lxc.network.type lxc.network.flags lxc.network.link lxc.network.hwaddr lxc.network.ipv4 lxc.network.name }}}

#

cd /usr/lib64/lxc/templates wget –no-check-certificate https://raw.github.com/Ponce/lxc/lxc-slackware-slackpkg/templates/lxc-slackware.in mv lxc-slackware.in lxc-slackware chmod +x lxc-slackware }}}

MIRROR=http://192.168.1.2 lxc-create -f /path_to/chuckd.config -n chuckd -t slackware }}}

Tips & Tricks

#

append=”resume2=swap:/dev/sda2 splash=silent “ boot bitmap=/boot/splash.bmp bmp-table=234p,348p,1,4 bmp-colors=220,0,,255,220, bmp-timer=539p,396p,220,0, prompt timeout }}}

Proedimiento para hacer chroot

mount /dev/sda<N> /mnt
mount -o bind /dev /mnt/dev
mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
chrrot /mnt /bin/bash

Configuración de nombre de host y fecha con NTP

echo "my.host.name" > /etc/HOSTNAME
timeconfig
date -s "11/20/2014 11:12"
nptd -gq
chmod 755 /etc/rc.d/rc.ntpd
/etc/rc.d/rc.ntpd start

Referencias

  • [[[http://www.slackware.com/ Sitio Oficial]]]
  • [[http://www.slackbuilds.org/ Slackbuilds]]
  • [[[http://alien.slackbook.org/ Alien wiki here]]]
  • Sitio web
  • Slackware ARM inside QEMU