jueves, 29 de diciembre de 2011

ArchLinux - Un entorno productivo!.

ArchLinux con Grub2 y LXDE como entorno de escritorio.

Desde hace algunos meses he estado bagando de una distribución a otra, ya que me aburrí del la evolución tan lenta de Debian Estable, trate de usar la rama "Testing" pero resulta casi inmanejable con su esquema tan arbitrario de actualizaciones y los recurrentes problemas en las replicas de red y el instalador. Luego trate de pasar a LMDE pero no es lo mismo, por más que lo intente Mint sigue muy influenciada por Ubuntu aun en la rama Debian... así que he pasado de un lado a otro: Trisquel, Vector, Slax, Gentoo, Mageia... pero nada siempre ha quedado un cierto vació, hasta que un amigo me recomendó ArchLinux, la verdad estaba escéptico respecto al mantenimiento de una distribución como esta, sin embargo después de montarlo en VBox y en mi PC de mesa he quedado gratamente sorprendido.

Arch ofrece las tres características fundamentales de una buena distribución Linux:
  • Primero y fundamental: posee una comunidad nutrida, comprometida y activa algo que de lo que adolecen muchas distribuciones como Debian (Me perdonaran pero son sumamente cerrados y lentos) y razón por la cual Ubuntu ha crecido hasta donde esta ahora.
  • Segundo: presenta un excelente soporte de software para aplicaciones y mantenimiento (actualización) de la distribución, gracias a su filosofía el sistema se mantiene estable y simple aun tras largos periodos de uso. Además el sistema AUR es algo maravilloso que hace sonrojar a cualquier otro Linux y su comunidad, en mi opinión muy superior al PPA de Ubuntu y derivados.
  • Tercero: Arch se puede personalizar a muy alto grado, tanto que con un buen nivel e conocimientos y algo de esfuerzo se puede tener una distribución casi que única y perfecta para las necesidades de cada quien.
Bueno esa es mi explicación de porque Arch, ahora porque Grub2... bueno Arch viene con Grub Legacy que ya es una reliquia y molesta bastante a la hora de mantener un sistema multiboot así que resulta conveniente "Actualizar" a Grub2. En cuanto a porque usar LXDE... bueno solo diré que Gnome3 me ha decepcionado, KDE sigue siendo mi favorito pero exige muchos recursos y Fluxbox es una belleza rara que solo algunos tíos muy retro apreciamos; así que al buscar un entorno de escritorio ligero, amigable y estéticamente aceptable la elección más natural es LXDE en especial porque su filosofía modular (puede usar aplicaciones y componentes de otros entornos) es la que mas se ajusta a la idea de Arch.
Dejando de lado las explicaciones y la carreta procedamos con lo interesante... instalar Arch y personalizarlo un poco. Pero antes un par de recomendaciones:
  • Todo lo que aparezca con un # es un comando de Linux que debe ejecutarse como root, análogamente lo que esta precedido por $ es un comando de usuario normal.
  • NO usare sudo, toda la labor administrativa se hará como root, si desean usar sudo es fácil de configurar pero no le incumbe a este post.
  • Seria ideal que si van a seguir los procedimientos aquí descritos conozcan de antemano algo de Linux, de preferencia que tengan uno instalado o lo hayan usado antes.
  • Los pasos descritos pertenecen a una maquina virtual con 1 Gb de Ram, procesador mono núcleo de 2.8 GHz y 18 Gb de disco, recomido que primero lo prueben en virtual para familiarizarse y luego si lo prueben con el PC físico.
  • La instalación se realizara con Netinstall que es lo mas recomendable para una distribución como Arch, asegúrese de tener una acceso a internet vía cable y con DHCP, la configuración manual de red e inalámbrica la dejare para después aunque no es cosa del otro mundo y pueden leerlo en la WIKI de Arch que es muy buena.
  • Deben estar realmente dispuestos a mantener la distribución, en Arch se puede hacer casi cualquier cosa que se desee pero hay un precio... Aprender de la comunidad, de la WIKI, de los foros, hay que investigar y compartir lo aprendido. "Si queréis un sistema Instant-On mejor quedaos con Ubuntu".
  • Si no tenéis ni idea de sistemas y los conceptos de partición, swap, arquitectura, boot y otros os suenan a chino o marciano, mejor dad la vuelta y salid huyendo o armaos de valor y voluntad para aprender por vuestra cuenta (no viene al caso que explique esas cosas o el post seria aun más largo de lo que es y eso ya es mucho) que significan todas esas cosas.
Salvadas las advertencias procedamos bajo la responsabilidad de cada uno...


Parte 0: Preparando el medio de instalación:
  1. Iremos a http://www.archlinux.org/download/ y descargaremos el Netinstall de la arquitectura que nos corresponda i686 o x86_64, también esta la opción por si quieren instalar varias maquinas distintas con la misma imagen. 
  2. Una vez descargado podéis hacer la revisión de la suma MD5 pero yo me la omitiré, para que la imagen baje corrupta se requiere o bien que tengáis una conexión a internet pésima, que la hayas bajado de algún lugar poco confiable tipo softonic (sin ofender) o que estéis trabajando en un Windows lleno hasta el alma de virus, si es así procedan con la MD5, si no os podéis permitir un acto de FE.
  3. Llegado este punto hay dos opciones; o bien quemar la imagen en un CD lo que causara un gran daño ecológico al planeta y un malestar en vuestro bolsillo o bien pasar la imagen a una USB lo que se puede hacer muchas veces sin problemas (Aseguraos de que la USB esta vacía o contiene información despreciable ya que al pasar la imagen se borrara todo el contenido). Así que si estáis en un Linux/Unix lanzad el siguiente comando, si no quemad el bendito CD o poneos a buscar como se hace un USB booteable en Windows... cosa que no le compete a este post.
  4. # dd if=imagen of=usb 
  5. Donde "imagen" es la ruta completa a la imagen iso del Netinstall y "usb" es la ruta al dispositivo usb algo como /dev/sdb el dispositivo no lleva números, recuerden que algo como sdb1 es la partición 1 de sdb ej: dd if=/home/zero/Descargas/archlinux-2011.08.19-netinstall-x86_64.iso of=/dev/sdb.
Ya sea con los pasos anteriores o quemando el CD, en estos momentos estamos en condiciones de poner el medio de instalación en la PC, reiniciar y comenzar la instalación base.
Parte 1: Instalando el sistema base (solo consola):
1.  Boot NetInstall.

2.  # loadkeys la-latin1 (o "es" dependiendo el teclado).

3.  # /arch/setup
4.  Seleccionar fuentes (repositorios), recomendado todos los estables y remotos: core-remote, extra-remote, community-remote y multilib-remote (Si es x64).
5.  Escoger mirror recomendado un ftp: ftp://mirror.its.dal.ca/
6.  Configurar la red, cableada y con dhcp para no tener problemas (ADSL de ser posible).

7.  Seleccionar el editor, nano o vi... me quedo con vi pero si no saben usarlo mejor nano que es mas intuitivo.

8.  Fijar el reloj:
    - Escoger la región según donde se vive ej: Colombia = America/Bogota.
    - Fijar hora y fecha: UTC si Arch es el único SO, en otro caso localtime.
    - Ntp: Ya que tenemos red mejor usar el ntp para dejar el reloj sincronizado.
    - return: Todo listo regresamos al menú.
9.  Preparar discos:
    - Particionado manual, tamaños de partición medianamente realistas... para que el SO sirva de algo:

        - Solo Arch: /boot = 1Gb, / = min 5Gb, /home = min 2 * /, swap = ram + 1Gb (para poder hibernar)
        - Otros SO: / = min 16Gb, swap = ram + 1Gb, si se tiene otro Linux se puede usar la misma swap
        - En lo posible que sean particiones primarias y ordenadas, la swap de ultima.
        - Debe haber al menos una partición booteable en algún disco
        - Fijar los tipos 82 para la swap y 83 para las demás
        - Write -> Quit -> Done

    - Configuración manual del sistema de archivos (El tamaño cambiara un poco, al darle formato a la partición):

        - Modo directo usando /dev/*

        - Asignar los formatos y puntos de montaje:
            / = Ext4, /home = Ext4, /boot = Ext3 o Ext4 (al gusto del consumidor), swap = swap
        - Sin etiquetas ni opciones adicionales (A menos que sepan que hacen y las necesites)

        - Done -> Ok -> Return
10. Seleccionar paquetes:
    - Gestor de arranque (bootloader): grub, aunque luego le cambiaremos.
    - Paquete base: de momento el único necesario, luego instalaremos el resto con pacman.
    - No seleccionar nada en los subpaquetes.

11. Instalar paquetes: Esto demorara un buen rato.
12. Configurar sistemas:

    - /etc/rec.conf:
        - Fijar el LOCALE = "es_CO.UTF-8" (Colombia) o el de ustedes, recuerden idioma_País.UTF-8
        - Fijar el KEYMAP = "la-latin1" igual que en el paso 2.
        - Fijar el HOSTNAME = "arch" o como quieran que se llame su maquina
        - De paso revisar la configuración de red, aunque debe estar bien
        -[ESC]:wq y listo... ya saben como funciona vi o nano si no están familiarizados con vi (ojo es VI no VIM).
    - /etc/hosts: revisar que al final de la linea 127.0.0.1 este el mismo nombre que colocaron en HOSTNAME
    - /etc/locale.gen: Activar nuestro idioma y desactivar el ingles. Se activa quitándole la # y se desactiva colocándosela.
        - Es recomendable activar todas las variantes del idioma, la UTF-8, la ISO y la EUR si existe.
    - /etx/pacman.conf: Verificar que estén activados los repositorios:
        - Borrar el # de las secciones: core, extra, community y multilib (Si es un sistema de 64 bits). Borrar el # en ambas lineas (titulo e Include)
        - Agregar un repositorio AUR, indispensable en Arch... Después del include de [multilib] agregamos esto:
            [archlinuxfr]
            Server = http://repo.archlinux.fr/x86_64   
# Para 64 Bits
           
            [archlinuxfr]
            Server = http://repo.archlinux.fr/i686        # Para 32 Bits
        - Pueden agregar todos los repositorios de AUR que deseen y también pueden usar el modo Include, pero con esto es mas que suficiente.
    - /etx/pacman.d/mirrorlist: Activar nuestros mirrors preferidos, nuevamente quitándole el # a los que deseemos solo al Server no al titulo.
        - Recomiendo: Los Any como base, los de Canadá o Brazil de soporte y el que este mas cerca de ustedes en mi caso Colombia.
        - Es bueno tener al menos tres lineas de mirrors por si la primera falla, se tengan opciones de búsqueda, aunque también pueden usar uno solo.

13. Root-Password: Su clave de administración, que no se les baya a olvidar; deben ingresarla dos veces, no se vera nada pero la estarán escribiendo.
    - Done y quedara configurado el sistema.
14. Instalar BootLoader: Para que arranque el SO.

    - Les dirá que deben revisar el archivo de configuración, pero como después vamos a instalar grub2 esto no importa, solo verlo y salir.
    - Preguntara en que disco instalarlo, por lo general es el disco 1 (sda, hda, ssd1) o donde haya quedado la partición booteable.
15. Salir y reiniciar:
    - Exit Install: Sale del instalador, ya esta echo. Si se equivocaron en algo pueden volver a lanzar el /arch/setup
    - # reboot : Lanzar este comando reiniciara el sistema, asegurence de quitar el disco o usb para que arranque el nuevo SO.
16. Ingresamos con user: root y pass: "El que escribieron"... listo para la segunda parte.

Parte 2: Instalando Grub2:
Una vez se tiene instalado el sistema base de Arch, procederemos con la labor de actualizar sus paquetes y el sistema mismo, como usamos el Netinstall ya deberemos estar usando lo más reciente... sin embargo es mejor asegurarse:
# pacman -Syy
# pacman -Syu

El primer comando sincroniza los repositorios, si  hay algún problema verificad los archivos /etc/pacman.conf y /etc/pacman.d/mirrorlist.

Ya con los repositorios y el sistema actualizado, es recomendable instalar la herramientas de desarrollo base, que se usaran para compilar los paquetes de AUR y de paso un pacman más llamativo.
# pacman -S base-devel
#pacman -S pacman-color 
Esto tardara un rato, pero luego ya estaremos en condiciones de compilar la mayor parte de los repositorios AUR, ahora necesitamos un gestor para estos paquetes ya que pacman solo trabaja con los binarios oficiales, la mejor opción es yaourt.
# pacman -S yaourt 

Este paquete se encuentra en el repositorio adicional que agregamos al final del /etc/pacman.conf. Ahora bien nos interesa que grub2 gestione varios sistemas operativos y se configure manualmente, entonces instalaremos os-prober como primer paso.
# yaourt -S os-prober

Saldrán algunas preguntas a las que responderemos No en caos de que nos pida editar el paquete (Generalmente es la primer pregunta) y Yes a las que nos piden confirmación para compilar e instalar. Si hay algún error yaourt nos mostrara un mensaje pertinente, en cuyo caso teclear Control + C para parar la instalación, corregir el error (suele ser algún paquete que falta así que con pacman lo instalamos y listo) y volver a lanzar yaourt.
Hora de instalar grub2, pacman nos alertara del conflicto con grub y dirá que debe desinstalarlo, aceptamos pues es lo mas lógico.
# pacman -S grub2

A diferencia de apt, urpmi o yum, pacman solo descargará el paquete grub2 no lo montara en el sistema lo que es conveniente pues debemos hacerle un ajuste. En algunos monitores no se detecta el modo automático de vídeo así que editaremos el /etc/default/grub para fijar la resolución por defecto en 640 por 480, de paso aprovecharemos para cambiar el TIMEOUT a más de 5 segundos si así lo queremos y el esquema de colores por si no os gusta el Azul sobre Cyan y si queremos una imagen... si es que tenemos alguna... Dejaremos los valores como sigue: 
GRUB_TIMEOUT=15
GRUB_GFXMODE=640x480
GRUB_COLOR_NORMAL="white/black"
GRUB_COLOR_HIGHLIGHT="black/light-gray"
GRUB_BACKGROUND="/usr/share/images/grub/lobo.png" 
Después de hacer estos cambios basta con lanzar los siguientes comandos y listo tendremos grub2 listo y funcional. Os dejo una imagen recuerden 640x480 en png o tga:

# mkdir -p /usr/share/images/grub/
# cd /usr/share/images/grub/
# wget http://dl.dropbox.com/u/42288041/lobo.png         "O la imagen que quieran..."
# grub-install /dev/sda                                                     "Deben indicar el disco de arranque, el mismo del paso 14 en la parte 1"
# grub-mkconfig -o  /boot/grub/grub.cfg                         "Esto actualiza el grub y puede hacerse muchas veces, si quieren hacer otros cambios".
# reboot
Tras reiniciar veremos nuestro flamante Grub2 personalizado y si tenemos otros SO instalados ya aparecerán gracias a os-prober.... Bien listos para la parte 3.

Parte 3: Entorno Gráfico:
A estas alturas seguro ya estáis hartos de la consola... pues bien yo estoy igual, en todo caso la mayor parte de las aplicaciones de producción requieren un entorno gráfico y es precisamente lo que vamos a activar ahora.

Lo primero es crearnos un usuario normal, no es muy recomendable desplegar un entorno gráfico como root, bien vamos a ello:
# adduser 
Respondemos a las preguntas, el Login es nuestro nombre de usuario, UID solo darle enter y que lo genere automáticamente, Group igual solo darle enter, Aditional Groups... bueno esto es importante necesitamos agregar el usuario a ciertos grupos importantescomo:
audio, lp, optical, storage, video, wheel, games, power, scanner 

En la WIKI explican la razón, aunque básicamente es para acceder a ciertos permisos, de hay en adelante solo darle enter hasta que pregunte por el nombre completo, teléfono y demás llenadlos si queréis, si no solo enter al final pedirá la contraseña UNIX dos veces introducid la que deseéis y listo. Ahora necesitamos unos cuantos demonios extra: 
# pacman -S gamin
# pacman -S dbus
# pacman -S alsa-utils 

Básicamente gamin es para la gestión de archivos , dbus para los mensajes entre el servidor gráfico y el entorno y alsa... bueno no queréis un sistema mudo o si?.  Ahora hay que incluir los demonios en el /etc/rc.conf, al final del archivo agregamos:
DAEMONS=(... hal dbus alsa ...)
No quitamos nada solo agregamos los demonios adicionales, no es necesario agregar gamin pero si hal que no lo hemos instalado pero si esta en el sistema. Lo mejor ahora es reiniciar para que carguen los nuevos demonios o subrlos manualemte con:
# rc.d start deminio
La verdad prefiero reiniciar... Bien ahora ya podemos montar el servidor gráfico X11, si el Mítico Xorg:
# pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils
# pacman -S mesa mesa-demos
Esto tardara un rato pero al final dejara listo el Xorg para que podamos montar sobre el lo que queramos Gnome, Kde, Fluxbox... o en nuestro caso LXDE. Los paquetes mesa son para dar soporte OpenGL (3D) si es que tenemos los recursos de hardware necesarios, en todo caso es mejor intalarlos.
Ahora la parte escabrosa, la tarjeta grafica... ya saben el viejo conflicto Nvidia Vs ATI, o intel si no tenemos pasta para más... bueno veamos cada caso, usen este comando para saber cual tienen, si es que no lo saben!.
# lspci | grep VGA
Nvidia: Arch posee acceso al driver privativo de Nvidia, pero la verdad es muy problemático así que recurriremos al comunitario que funciona de forma bastante decente:

# pacman -S xf86-video-nouveau
# pacman -S nouveau-dri
# modprobe nouveau


ATI: La verdad no tengo ningún equipo con ATI así que no se que tan bien funcione:
# pacman -S xf86-video-ati

INTEL: Esta funciona o funciona, no hay lio:
# pacman -S xf86-video-intel

Cosas Raras: Si no es ninguna de las anteriores, lo que es muy raro podéis usar el driver vesa el mas genérico pero sin soporte 3D:
# pacman -S xf86-video-vesa 
O hacer una busqueda a ver si hay algun paquete que concuerde con la que teneis instalada:
# pacman -Ss  xf86-video
Eso os dará una lista de todos los driver disponibles, escogéis uno le dais pacman -S .... y eleváis una plegaria.

VirtualBox: Para hacer pruebas esta bastante bien, solo hay que instalar algunos paquetes y montar el demonio en /etc/rc.conf:
# pacman -S virtualbox-archlinux-additions
# modprobe -a vboxguest vboxsf vboxvideo

MODULES(... vboxguest vboxsf vboxvideo ...)

Hora de lanzar el Xorg y ver que tal esta, para usaremos los componentes gráficos mas elementales de todos.... jejeje:
# pacman -S xorg-twm xorg-xclock xterm
Luego ingresamos como usuario normal, borramos el .xinitrc si existe y lanzamos el xorg:
# su usuario
$ rm -frv /home/usuario/.xinitrc
$ startx
Si todo ha ido bien tendréis algo parecido a esto:


No es muy cool, pero tío lo habéis montado desde 0, eso es mucho más de lo que un Ubuntero promedio puede decir... jeje sin ofender a nadie. Bueno a partir de este punto podéis montar lo que se os antoje, si no queréis LXDE sino algo más moderno es cuestión de cambiar el paquete a instalar. Bueno manos a la obra.
$ pkill x      "Para volver a la consola"
$ su            "Regresamos a modo root"
# pacman -S lxde lxdm
Tardara un poco pero luego ya estará el entorno gráfico instalado ahora sol hay que decirle al sistema que arranque en ese modo y no en consola, para ello editamos el archivo /etc/inittab y comentamos (ponemos un #) en la linea: id:3:initdefault
Y Descomentamos esta: id:5:initdefault
Luego comentamos la linea: x:5:respawn:/usr/bin/xdm -nodaemon
Y Agregamos el inicio para LXDM justo debajo: x:5:respawn:/usr/sbin/lxdm >/dev/null 2>&1

Un ultimo detalle es asegurarnos de que LXDE reconozca apropiadamente nuestro teclado, para ello editaremos el archivo /etc/X11/xorg.conf.d/10-evdev.conf y buscamos la sección de teclado:

Section "InputClass"
Identifier "evdev keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
EndSection
Por ultimo colocamos una linea justo antes de Driver que contenga esto:
Option "XkbLayout" "latam"
EN lugar de latam podeis colocar es... o cualquier otro esquema de teclado que sea recocido por Xorg... bueno después solo haced un reboot y listo a disfrutar.
Al final tendréis algo como esto, sin embargo aun falta mucho, editores, reproductor de audio y vídeo, programas de oficina, dibujo.... y tantas cosas más, pero eso es asunto del usuario, con pacman se puede instalar casi cualquier cosa y si no para eso esta yaourt... el sistema ya esta listo y funcionando ahora solo tenéis que afinarlo como lo queráis. Por ahora es todo, hasta la próxima... Paz y Suerte 黒オオカミ.

No hay comentarios:

Publicar un comentario