Notas

Instalación

Para evitar problemas de dependencias entre aplicaciones y/o librerías es recomendable realizar una instalación completa (full) de Slackware Linux, ocupando cerca de 8G de espacio en el disco duro.

Podrás instalar otros paquetes extras de Slackware Linux, los cuales no fueron instalados durante la instalación de Slackware Linux, con el comando slackpkg install extra.

A diferencia de muchas otras distribuciones de GNU/Linux, Slackware Linux no cuenta con ningún mecanismo o herramienta para resolver las dependencias entre programas y librerias por lo que queda en manos del usuario comprender mejor el sistema y encargarse de este tema.

Por otro lado, Slackware Linux es una distribución pura de 64bits por lo tanto no es posible ejecutar programas de 32bits.

Slackware

En caso de considerar que hace falta la instalación de algún paquete de Slackware es posible ejecutar el comando slackpkg update && slackpkg install slackware64 && slackpkg install patches que descargará la lista de actualizaciones disponibles, después los paquetes de slackware64 (todos los paquetes que forman parte de las series: a, ap, d, e, f, etc) y finalmente los paquete que forman parte de las actualizaciones.

Nota: En la fecha/hora Thu Sep 6 05:28:05 UTC 2018 fue agregado Rust a la serie patches. Con la anterior serie de comandos dados Rust sería instalado.

Documentación

El directorio /usr/doc cuenta con directorios que reflejan el nombre y versión de paquetes instalados, los cuales contienen documentación por cada uno de los paquetes.

Otra manera de encontrar documentación de algún comando es ejecutarlo mediante el parámetro --help y/o -help.

Finalmente se cuenta con las páginas de manual (man pages) mediante el comando man para obtener información sobre el uso de algún programa o librería instalado. Por ejemplo man nano, man ls y man bash.

Grupos y usuarios

Para la creación de un grupo de usuarios se usa el comando groupadd mientras que para borrar un grupo de usuarios se usa el comando groupdel.

Para la creación de una nueva cuenta de usuario se usa el comando useradd mientras que para borrar una cuenta de usuario se usa el comando userdel.

Aúnque el comando sudo forma parte de Slackware Linux no se encuentra configurado por lo que su uso es opcional.

Un usuario común puede cambiar su propia shell en uso mediante el comando chsh. Es importante ver el contenido del archivo /etc/shells para determinar cuales están disponibles.

Localización

Lenguaje

Slackware Linux está configurado para mostrar mensajes en el idioma ingles por default. Para poder visualizar algunos mensajes en otro lenguaje se hace uso de la variable de entorno $LANG la cual puede ser definida de manera global (para todos los usuarios del sistema operativo) o bien de manera local (para un usuario en especifico).

  • De manera global en: /etc/profile.d/lang.sh y/o /etc/profile.d/lang.csh
  • De manera local en alguno de los archivos de configuración de la shell que haga uso el usuario: $HOME/.bashrc y/o $HOME/.bash_profile.

Por ejemplo para español de México en UTF-8/Unicode:

$ echo $LANG
es_MX.utf8

Y para ingles de Estados Unidos en UTF-8/Unicode:

$ echo $LANG
en_US.UTF-8

IMPORTANTE: está variable afectará tanto a los programas de la línea de comandos como de la interfaz gráfica de usuario por lo que si haces uso de XFCE y/o KDE notarás una diferencia al respecto.

Teclado

El comando para configurar el teclado en la línea de comandos es loadkeys mientras que para la interfaz gráfica es setxkbmap. XFCE y KDE tienen sus propias opciones para configurar el teclado.

Zona horaria

La zona horaria del sistema operativo puede ser configurada usando el comando timeconfig o bien ejecutando el comando para la zona horaria de la Ciudad de México:

cp /usr/share/zoneinfo/America/Mexico_City /etc/localtime

El ajuste de la hora del sistema puede ser llevado a cabo con los comandos date y hwclock. Otra manera sería hacer uso del servicio de red NTP (Network Time Protocol) mediante los comandos ntpdate y/o ntpd (incluyendo el script de init /etc/rc.d/rc.ntpd).

Entorno gráfico

Slackware Linux cuenta con los entornos de escritorio: XFCE y KDE. De igual forma podrás encontrar los gestores de ventanas: twm, blackbox, fluxbox, fvwm2 y window maker.

Es posible instalar los entornos de escritorio MATE Desktop Environment, Cinnamon Desktop Environment y GNOME. De igual forma están disponibles algunos otros gestores de ventanas en slackbuilds.org, como por ejemplo: enlightenment, jwm, i3, awesome, openbox, ratpoison y xmonad.

Gestor de ventana JWM (Joe's Window Manager) en Slackware Linux:

images/jwm1.png

Varios programas de multimedia en Slackware Linux:

images/jwm2.png

Las principales diferencias entre los entornos de escritorio y los gestores de ventanas es de que los primeros cuentan con varias aplicaciones para otorgar una experiencia común-familiar a usuario de otros sistemas operativos (Microsoft Windows/macOS) mientras que los segundos son enfocados hacia la conservación-optimización de recursos siendo su uso enfocado-destinado a usuarios más familiarizados con un sistema operativo Linux/Unix.

La versión de KDE es la 4.14, tiene varios efectos/servicios que consumen recursos y puede ser necesario configurar algunas cosas en él para mejorar su desempeño (1, 2, 3, 4, 5, 6 y 7)

Para forzar la salida del entorno gráfico y regresar a la consola se puede hacer uso del juego de teclas Ctrl + Alt + Backspace. Solo hacer uso de esto en casos realmente necesarios.

Acceso inmediato al entorno gráfico

Es posible acceder inmediatamente al entorno gráfico desde la consola apenas uno se haya autenticado ante el sistema (login) poniendo algo como lo siguiente en el archivo de configuración de la shell en uso, por ejemplo para Bash al final del archivo $HOME/.bashrc:

# Start X automatically when login-in /dev/tty1
TTY="$(/usr/bin/tty | sed 's:.*/::')"
if [[ ! ${DISPLAY} && ${TERM} == 'linux' && ${TTY} == 'tty1' ]]; then
  unset TTY
  exec startx
fi
unset TTY

La otra opción es hacer uso de un display manager como KDM (KDE Display Manager) o XDM (X Display Manager) editando el archivo /etc/inittab y modificando la línea:

id:3:initdefault:

por:

id:4:initdefault:

Lo anterior hará que el sistema operativo inicie en el nivel de ejecución 4, por default es el 3.

Firewall

Slackware Linux cuenta con iptables (netfilter) y el script de init /etc/rc.d/rc.firewall (no existe por default) para configurar un firewall. Por default Slackware Linux no cuenta con algún firewall activado por lo que es necesario estudiar/aprender a hacer uso de iptables. Otra opción es buscar programas que faciliten la configuración de un firewall en slackbuilds.org

Servicios

Slackware Linux ya cuenta con varios servicios: de HTTP, DNS, SMTP, SSH, etc. El directorio /etc/rc.d contiene scripts de init para iniciar dichos servicios.

Algunos servicios son iniciados por el sistema si forman parte oficial de Slackware Linux, otros tendrán que ser explicitamente ejecutados mediante el archivo /etc/rc.d/rc.local para iniciarlos y /etc/rc.d/rc.local_shutdown para detenerlos. Los scripts de init de los servicios deben tener permisos de ejecución.

Por ejemplo el servicio de red de SSH:

# ls -l /etc/rc.d/rc.sshd 
-rwxr-xr-x 1 root root 1726 Mar 10  2016 /etc/rc.d/rc.sshd*

# ps aux | grep sshd
root       926  0.0  0.0  28680   428 ?        Ss   20:30   0:00 /usr/sbin/sshd

# netstat -plutn | grep sshd   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      926/sshd            
tcp6       0      0 :::22                   :::*                    LISTEN      926/sshd

Si se requiere que el sistema ejecute algunos comandos siempre que se inicia-encienda edita a /etc/rc.d/rc.local y si se requiere que ejecute algunos comandos siempre que se detenga-apague edita a /etc/rc.d/rc.local_shutdown. En ambos casos los comandos establecidos en dichos archivos se ejecutarán como usuario root.

Audio y video

Slackware Linux cuenta con soporte de audio y video, sin embargo por cuestiones de licencias y derechos de autor es necesario hacer la instalación de otros tantos paquetes/librerias/codecs para poder reproducir algunos formatos de audio o video, siendo los paquetes ffmpeg y gstreamer (gst-plugins y gst-ffmpeg) los más importantes, ambos disponibles en slackbuilds.org (ffmpeg y gst).

Es posible encontrar programas para uso de una webcam así como para la grabación de audio/video de un escritorio-screencast (webcam record y screencast).

Programación

Slackware Linux cuenta con varios compiladores e interpretes:

  • GCC (GNU Compiler Collection), principalmente para C/C++:

     $ ls -1 /var/log/packages/ | grep -E '^gcc-|^make-|^gdb-'
     gcc-5.5.0-x86_64-1_slack14.2
     gcc-g++-5.5.0-x86_64-1_slack14.2
     gcc-gfortran-5.5.0-x86_64-1_slack14.2
     gcc-gnat-5.5.0-x86_64-1_slack14.2
     gcc-go-5.5.0-x86_64-1_slack14.2
     gcc-java-5.5.0-x86_64-1_slack14.2
     gcc-objc-5.5.0-x86_64-1_slack14.2
     gdb-7.11.1-x86_64-1
     make-4.1-x86_64-2
    
  • PHP (PHP: Hypertext Preprocessor):

     $ ls -1 /var/log/packages/ | grep -E '^php-'             
     php-5.6.34-x86_64-1_slack14.2
    
  • Python:

     $ ls -1 /var/log/packages/ | grep -E '^python-'
     python-2.7.14-x86_64-1_slack14.
    
  • Ruby:

     $ ls -1 /var/log/packages/ | grep -E '^ruby-'   
     ruby-2.2.9-x86_64-1_slack14.2
    
  • Perl:

     $ ls -1 /var/log/packages/ | grep -E '^perl-'               
     perl-5.22.2-x86_64-1
    
  • Common Lisp (LISP):

     $ ls -1 /var/log/packages/ | grep -E '^clisp-'
     clisp-2.49-x86_64-3
    
  • COBOL:

     $ ls -1 /var/log/packages/ | grep -E '^gnu-cobol-'
     gnu-cobol-1.1-x86_64-1
    
  • Ensambladores (ASM):

     $ ls -1 /var/log/packages/ | grep -E '^dev86-|^nasm-|^yasm-'
     dev86-0.16.21-x86_64-1
     nasm-2.13.01-x86_64-1_slack14.2
     yasm-1.3.0-x86_64-1
    
  • Scheme (LISP):

     $ ls -1 /var/log/packages/ | grep -E '^guile-'    
     guile-2.0.11-x86_64-2
    
  • llvm (LLVM compiler toolkit)/clang:

     $ ls -1 /var/log/packages/ | grep -E '^llvm-' 
     llvm-3.8.0-x86_64-2
    
  • Tcl/Tk:

     $ ls -1 /var/log/packages/ | grep -E '^tcl-|^tk-'
     tcl-8.6.5-x86_64-2
     tk-8.6.5-x86_64-2
    

Es posible instalar muchos otros compiladores e interpretes disponibles en slackbuilds.org:

  • Arduino/C/C++: arduino
  • C#/F#/Microsoft: mono, fsharp, monodevelop
  • C++/Qt/KDE: qt5, qt-creator
  • C/Vala/GNOME: vala
  • Common Lisp/LISP: sbcl
  • Elixir/Erlang: elixir, erlang-otp
  • FreePascal/Pascal/Delphi: fpc, lazarus
  • Go/Google: google-go-lang
  • Groovy/Java: groovy
  • Haskell: hugs98, ghc
  • Java SE Development Kit/Oracle: jdk, openjdk, zulu-openjdk
  • JavaScript/ECMAScript: nodejs
  • Julia: julia
  • Kotlin/Java: kotlin
  • Lua: lua
  • OCaml/ML: ocaml
  • Objective-C/Apple: swift
  • PHP/Hack/Facebook: hhvm
  • Perl 6: parrot
  • Prolog: swi-prolog,
  • Python 3: python3
  • Rust/Firefox/Mozilla: rust
  • Scala/Java: scala
  • Scheme/LISP: racket, chicken
  • Smalltalk: scratch, squeak-vm
  • Standard ML/ML: mosml, polyml, smlnj, mlton

Recursos

  • icons-update.sh: script de Bash para instalar como usuario común varias colecciones de iconos para los entornos de escritorio.