10.07.2010

Guía ArchLinux II: Post-instalación en Arch USB

En la primera guía vimos como instalar la distribución Arch Linux en nuestra memoria usb con la cual terminamos con un sistema base. La filosofía de Arch dice que su desarrollo se concentra en la sencillez, minimalismo y elegancia de código. Se centra en la instalación de un sistema base mínimo, el cual es configurado por el usuario en torno a su propia idea de entorno de trabajo instalando solo lo que desee o se requiera para lograr sus propósitos únicos.



Compartiendo esta filosofía de desarrollo e implementación, vamos a seguir con la post-instalación de nuestro sistema Arch usb con dos cosas en mente y que van de la mano: la configuración de un sistema liviano y la optimización del espacio en disco al tratarse de un sistema portable. Quiere decir que siempre se elegirá el software más liviano posible sin sacrificar demasiado la usabilidad.

** Conexión y Actualización **
Para tener un sistema listo para ser configurado a nuestra medida, hay que realizar algunas tareas generales que garanticen el correcto estado del mismo. Lo primero será verificar el correcto funcionamiento de la conexión a internet para así pasar a la actualización de los paquetes y finalmente hacer unos arreglos de optimización del funcionamiento del gestor de paquetes pacman.

- Configuración de red.
Probamos si ya disponemos de conexión a internet, si usa conexión cableada dhcp, seguramente ya la tenemos ;) Si obtenemos respuesta, pues ya no hacemos nada, si no la obtenemos pasamos a configurarla manualmente según el tipo de conexión, cableada o inalámbrica. También se puede visitar este enlace para una información más detallada.
ping www.google.com
Conexión cableada.
Verificamos que el dispositivo de red esté reconocido con el siguiente comando (generalmente nombrado como eth0 o eth1):
ifconfig -a
Una vez que sabemos el nombre de la tarjeta de red (ej. eth0) procedemos a levantarla ya sea por dhcp para el primer comando, o por medio de ip estática con el segundo comando especificando la puerta de enlace con el tercero:
dhcpd eth0
ifconfig eth0 <dirección ip> netmask <máscara> up
route add default gw <puerta de enlace>
Conexión inalámbrica
De igual forma verificamos que el modulo de la interfaz exista (ej. wlan0):
iwconfig
Levantamos la interfaz:
iwconfig wlan0 up
Nos asociamos a un punto de acceso, por ejemplo linksys (sin clave):
iwconfig wlan0 essid "linksys"
Y solicitamos una dirección ip:
dhcpd wlan0
Para conectarnos mediante wifi a una red cifrada podemos consultar este enlace para una guía general, y este sobre cifrado WPA mediante wpa_supplicant. Una vez configurada la interfaz realizamos nuevamente un ping para comprobar el correcto funcionamiento.

- Actualización del sistema mediante Pacman.
Pacman es el gestor de paquetes de Arch, su uso es muy sencillo y es sumamente potente para realizar todas las tareas de mantenimiento de paquetes del sistema. Como ya dejamos preparados los archivos en el proceso de instalación, aquí podemos pasar directamente a ejecutarlo, a su vez optimizaremos su funcionamiento el cual también nos sirve para ahorrar valioso espacio en disco de nuestra memoria usb.

Primero ejecutamos una actualización total de las listas de paquetes para luego instalar el paquete pacman y finalmente el paquete curl:
pacman -Syy
pacman -S pacman
pacman -S curl
En la guía de instalación mencioné que pacman puede manejar hasta 6 mirrors usando el que mejor tiempo de respuesta le ofrezca. Esto se hace mediante el script rankmirrors el cual se puede ejecutar periódicamente sobre todo si cambiamos de mirrrors o si vemos que alguno no responde adecuadamente. Para ejecutarlo, primero guardamos el archivo mirrorlist actual y generamos uno con la información obtenida por el script mediante los siguientes comandos:
cd /etc/pacman.d/
cp mirrorlist mirrorlist.backup
rankmirrors -n 6 mirrorlist.backup > mirrorlist
Y sincronizamos nuevamente las listas de paquetes:
pacman -Syy
Ahora podemos actualizar el sistema para tener los paquetes a la fecha, lo hacemos con el siguiente comando:
pacman -Syu
Respondemos "y" a todas las preguntas. Esto puede llevar algún tiempo dependiendo de la velocidad de la conexión y de otras cosas.

Para terminar, existe un comando que realiza algunas tareas en el gestor de paquetes que mejoran su rendimiento además, algo muy importante para nuestra situación será eliminar los paquetes descargados que ya no son necesarios y así liberar espacio en disco que probablemente no tenemos mucho :) Para ello ejecutamos la siguiente línea de comandos:
pacman -Scc && pacman-optimize && sync
Más información acerca de esta y otras mejoras a pacman en este enlace.

Ahora instalamos dos programas necesarios (yo diría que básicos) para un mejor funcionamiento del sistema:
pacman -S dbus hal

Añadimos el demonio hal (dbus es iniciado automáticamente por hal) en el archivo rc.conf si no lo hicimos anteriormente. El orden de los demonios es importante, la siguiente línea muestra como deben ir:
DAEMONS=(hal syslog-ng network @netfs crond alsa)
Con esto terminamos de ajustar las primeras configuraciones de nuestro sistema. Se recomienda reiniciar ya que hubo una actualización del kernel y otros paquetes importantes para su inicio.

** Configuración de Usuarios **

- Creación de usuarios.
El siguiente paso luego de tener listo el sistema base, es crear una cuenta de usuario normal desde el cual empezar a configurar el sistema ya más detalladamente. Puede que queden cosas por hacer como usuario root pero eso se podrá hacer desde nuestra cuenta de usuario como veremos más adelante.

El siguiente comando creará un usuario normal llamado "archtux" con su respectiva carpeta personal (-m) el cual pertenece al grupo principal (-g) users, forma parte además de los grupos secundarios mencionados con -G y usa como shell bash (-s). Para mayor información acerca de la creación de usuario ejecutar man useradd. (Nótese la ausencia de espacios entre los grupos secundarios):
useradd -m -g users -G power,wheel,storage,optical,video,audio,lp,games,scanner -s /bin/bash archtux
Ahora proporcionamos una clave al nuestro usuario:
passwd archtux
- Sudo (opcional).
Aunque este paso es opcional, puede resultar útil si queremos dar capacidad de superusuario a un usuario normal como el creado anteriormente. De esta manera el suario puede iniciar sesión temporalmente con capacidades de root o bien ejecutar comandos como root. Instalamos el paquete sudo mediante pacman:
pacman -S sudo
Posteriormente habilitamos al grupo wheel la capacidad "usuarios sudo" (sudoers) mediante el comando visudo, el cual edita el archivo /etc/sudoers (NUNCA editar este archivo de otra manera que no sea el comando visudo!) Si no se sienten a gusto con el editor vi, se puede especificar el editor a usar (ej. nano):
EDITOR=nano visudo
Una vez dentro del archivo, descomentamos la siguiente línea:
%wheel ALL=(ALL) ALL
Por último editamos el archivo /etc/pam.d/su y descomentamos la siguiente línea:
auth      required       pam_wheel use_uid
- Programas útiles para usuarios.
A continuación muestro los paquetes que he instalado y que me parecen útiles por diversos motivos, Por ejemplo vim es una versión mejorada del potente editor vi, htop de la misma forma es un visor de procesos mejorado y mejor funcionalidad que el clásico top, wicd es un gestor de conexiones sumamente liviano (aunque depende de python y gtk) y robusto que puede manejar de manera automática todas nuestras conexiones sin configuración alguna (mediante hal) además de que se inicializa durante al carga del sistema y en segundo plano si se quiere. Powerpill es un programa que optimiza (si, aun más jeje) el funcionamiento de pacman por ejemplo usa  aria2c como gestor de descarga el cual permite descargas paralelas y segmentadas.  Ejecutamos los siguientes comandos:
pacman -S powerpill
Powerpill sobretodo es recomendable en descargas grandes o numerosas o en actualizaciones del sistema (-Syu), para verlo en funcionamiento lo haremos con los siguientes paquetes:
powerpill -S vim htop wicd
Si hemos optado por instalar wicd, hay algunos ajustes que hacer para que funcione correctamente. Abrimos el archivo /etc/rc.conf y añadimos en modo desactivado las interfaces que queremos que wicd use:
INTERFACES=(!eth0 !wlan0)
Luego añadimos el demonio wicd y desactivamos el demonio network, la línea debe quedar en este orden:
DAEMONS=(hal syslog-ng @wicd @netfs crond alsa)
Al anteponer el símbolo @ a un demonio le indicamos que su ejecución continúe en segundo plano, en este caso wicd tranquilamente puede continuar la configuración de las interfaces en segundo plano mejorando notablemente la velocidad de inicio del sistema. Guardamos el archivo y salimos. Por último añadimos el usuario root y el usuario que creamos anteriormente al grupo network:
gpasswd -a root network
gpasswd -a archtux network
Podemos reiniciar los demonios y servicios dbus y hal y ejecutar y configurar wicd, pero creo que más facil y confiable es reiniciar el sistema y que linux haga su trabajo ;)
reboot
Si todo ha salido bien no notaremos ningún cambio aparente aparte de una pequeña mejora en el tiempo de inicialización, sobre todo si usamos conexión cableada y dhcp, en caso de usar wireless y cifrado pueden remitirse a la sección anterior de configuración de red.

- Configuración de sonido
A continuación configuraremos el sonido mediante alsa y el paquete alsa-utils. Cabe anotar que ALSA (Advanced Linux Sound Arquitecture) es un componente del kernel y junto con udev, levantan y configuran automáticamente todo el servidor de sonido. Lo que se hace mediante el paquete alsa-utils es tener control del dispositivo de sonido reconocido por udev. Si el equipo dispone de un pcspeaker alsa lo reconocerá como si fuera la tarjeta de sonido. Si han seguido la guía como se ha venido dando, seguramente ya tienen deshabilitado estos módulos. Si no, los añadimos en el archivo rc.conf:
MODULES=(.... !snd_pcsp !pcspkr)
Ahora instalamos los paquetes siguientes, alsa-utils es el básico, alsa-oss es para que alsa "funcione" como oss para los programas que lo usan y el tercero son cosas útiles ;)
pacman -S alsa-utils alsa-oss alsa-plugins
Lo siguiente es configurar los niveles de volumen de la tarjeta y guardar la configuración en la carpeta del usuario. Ejecutamos los siguientes comandos, donde archtux es el nombre de usuario:
su - archtux 
alsamixer
Se cargará una aplicación mostrando los canales soportados por la tarjeta, con las flechas izquierda-derecha nos movemos entre los canales, con las flechas arriba-abajo ajustamos el nivel de volumen y con la tecla m cambiamos entre silenciado (MM muted) o abierto (OO open). Seguramente tendremos que ajustar el volumen a Master y PCM para obtener salida de sonido. Para salir presionamos ESC.

Probamos los niveles con el siguiente comando, para salir de la prueba presionamos CTRL+C:
speaker-test -c 2
Una vez que los niveles sean los deseados, guardamos la configuración y nos aseguramos que el módulo alsa este en la línea MODULES del archivo rc.conf:
sudo alsactl store
/etc/rc.conf
MODULES=(.... alsa)
Con eso sería todo por ahora. El sistema está actualizado, su inicio ha sido optimizado un poco al poner la carga de ciertos módulos en segundo plano y dispositivos como red y audio han quedado configurados correctamente. Si hemos tenido problemas en cualquiera de estos puntos, podemos encontrar mucha información útil en la wikis: wiki_en wiki_es archlinux-es wiki; así como en los foros: archlinux-en forum archlinux-es foro.

En la siguiente guía veremos todo lo referente al servidor gráfico X y la puesta a punto del escritorio Openbox.



Enlaces a las guías de instalación:


No se lo pierdan!

Como siempre comentarios, sugerencias y experiencias son bienvenidas :D

Saludos.