sábado, 8 de diciembre de 2012

Instalando ARCH GNU/Linux - Parte 1/2

Hola a todos! En este post voy a explicar como instalar ARCH GNU/Linux para 64 bits (en mi caso) desde el CD de instalación que provee la página.


ARCH GNU/Linux no es una distribución para usuarios nuevos en el mundo de GNU/Linux, como lo puede ser Ubuntu, o Mint. Ésta distribución tiene una mentalidad HUM (Hágalo Usted Mismo) https://wiki.archlinux.org/index.php/The_Arch_Way_(Español) y cada cosa que se requiere hacer, la tenemos que hacer a mano. Siguiendo con este lineamiento, no hay instalador. Uno tiene que instalar su ARCH a mano, desde cero. Así que en este post voy a poner una guía que armé mientras lo instalaba para ayudar a otros a que también se sumen a la experiencia ARCH.

¿Por qué ARCH? Bueno, luego de probar varias distribuciones GNU/Linux, (Ubuntu, Fedora, CentOS, Slackware, OpenSUSE, Chakra) https://wiki.archlinux.org/index.php/Arch_Compared_to_Other_Distributions_(Español) me pareció que la que balanceaba mejor la relación costo/beneficio era ARCH. Una de las cosas que para mi gusto son claves es una distribución es la velocidad. Si no es veloz, ya nunca va a tener mi visto bueno. Otra cosa que me llevó a instalar esta distribución, es que mi escritorio de preferencia por lejos es KDE, y con Ubuntu no sólo funciona mal sino que funciona lento. Luego probé chakra pero no me terminó de convencer, asi que probé ARCH con KDE y no me muevo más.
Más información en https://wiki.archlinux.org/index.php/Arch_Linux_(Español)


Nota para usuarios medios/avanzados: Todo lo que está en este post yo lo resumí de la Wiki de Arch. No hay nada en este post que no esté debidamente documentado en la wiki. Esto no intenta en ningún caso reemplazar la wiki, es solo una guía donde "esta todo junto", para un usuario nuevo que quiere dar un paso.
Este documento es una recopilación de:
https://wiki.archlinux.org/index.php/Beginners'_Guide_(Español)
https://wiki.archlinux.org/index.php/Installation_Guide_(Español)
https://wiki.archlinux.org/index.php/General_Recommendations_(Español)

ANTES DE COMENZAR: ARCH trae como particionador fdisk. Si no saben utilizar este programa, o no les es familiar, antes de comenzar con la instalación redistribuyan las particiones con otros programas de su gusto para evitar perder cualquier tipo de información. Si ya tenemos las particiones planteadas antes de instalar nos va a agilizar mucho la tarea. La recomendación para las particiones es, una para /, una para /home y otra para swap.

1) Empezamos: Bajamos la ISO de Arch de http://www.archlinux.org/download/ y la grabamos en un CD.
También lo pueden hacer desde un pendrive si así lo prefieren, da igual.
Ni bien comienza debemos elegir x86_64 (nuestro caso)


Arrancamos con el CD y nos devuelve una terminal como root.


2) Escribimos el comando
loadkeys la-latin1
Para cargar el teclado en castellano. En mi caso era ese, para ver todas las distribuciones "más comunes" hacer
ls /usr/share/kbd/keymaps/i386/qwerty
3) Hacemos las particiones con fdisk. primero ejecutamos
fdisk -l
para ver que discos tenemos. en mi caso es el /dev/sda asi que hacemos
fdisk /dev/sda
SI EL DISCO ESTA VACÍO Y NO QUEREMOS OTRAS PARTICIONES: creamos una tabla de particiones nueva con el comando "o".
SI QUEREMOS MANTENER OTRAS PARTICIONES EXISTENTES: Presionamos "p" para listar las particiones y ver cual queremos eliminar. Luego nos va a preguntar el número de la partición, ingresamos "2" si es sda2, "3" si es sda3.
Para crear particiones nuevas y desde cero como es mi caso: Presionamos "n", luego "p", luego "enter" ("1" es el default), luego "enter" ("2048" es el default), luego "+20G", aquí hicimos la particion de "/". Luego "n" de vuelta, luego "p", luego "enter" ("2" es el default), luego "enter" (deja el default) y luego ingresamos "+444G" (mi disco es de 500G) y así establecemos la particion de "/home". Luego "n" de vuelta, luego "p", luego "3", luego "enter" (deja el default) y luego "enter" de vuelta (deja el default) para completar el espacio en disco. Esta va a ser nuestra partición de swap. (en mi caso me quedó de 2Gb)
Luego escribimos "t", luego "3", luego "82". (esto es para marcar como swap la partición número 3)
Luego escribimos "w" para grabar los cambios.

4) Formateamos esas particiones
mkfs -t ext4 /dev/sda1
mkfs -t ext4 /dev/sda2
mkswap /dev/sda3
Por defecto, el 5% del espacio se reserva para root. Para discos duros de gran capacidad, ese 5% es demasiado, y totalmente innecesario si el disco en cuestión no será usado para archivos de sistema. En este caso, el 5% de 444G significan ¡22,2G!. Así que voy a utilizar 0,05% que serían 222M.
Para reducir ese porcentaje, basta usar el comando:
tune2fs -m 0.05 /dev/sda2
Fuente del último comando: http://gespadas.com/ext4-tune2fs

5) Tengo que activar la partición de swap
swapon /dev/sda3
6) Monto lo que va a ser el / sobre /mnt
mount /dev/sda1 /mnt
7) Monto el /home
mkdir -p /mnt/boot
(creo el directorio /boot por las dudas pero lo voy a colgar en la misma partición que mi /, no en una separada)
mkdir -p /mnt/home
mount /dev/sda2 /mnt/home
8) Nos conectamos a internet. En mi caso estoy conectado por cable pero utilizando la aplicación "wifi-menu" nos facilitará enormemente el trabajo si nos queremos conectar wifi. Para eso, debemos escribir
wifi-menu wlan0
y luego para probar si tenemos conexión escribimos
ping -c 4 www.google.com
a esta altura deberíamos ser capaces de pinguear a google sin mas.

9) Instalo todos los paquetes base necesarios para arrancar ARCH:
pacstrap /mnt base base-devel dialog wpa_supplicant wireless_tools wpa_actiond
Dialog; wpa_supplicant; wireless_tools y wpa_actiond sirven para que nos podamos conectar a la wifi utilizando la herramienta automática wifi-menu luego de reiniciar por primera vez.

10) Instalo el bootloader (GRUB)
pacstrap /mnt grub2-bios os-prober
NOTA: Si tu mother usa EFI/UEFI/GPT, tenes que realizar otro procedimiento.
El paquete os-prober sólo sirve si tienes otros sistemas operativos instalados en la misma computadora, sean Windows o GNU/Linux.

 11) Genero el fstab
genfstab -p /mnt >> /mnt/etc/fstab
12) Hago chroot a lo que va a ser mi / en el futuro
arch-chroot /mnt
13) Armo la imagen de inicio
mkinitcpio -p linux
14) Configuro e instalo Grub
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
15) Establecer una password de root
passwd
16) Salir del chroot
exit
17) Desmontamos nuestro futuro / y /home
umount /mnt/home
umount /mnt
18) reiniciamos!
reboot
19) Una vez que reiniciamos, veremos al grub

y luego nos pedirá el login, ingresamos con usuario root y la contraseña que hayamos ingresado.


Volvemos a configurar el teclado en español
loadkeys la-latin1
Luego nos disponemos a configurar el nombre de la computadora
hostnamectl set-hostname nombre_de_la_compu
pongo "nombre_de_la_compu" (pone el que más te guste)

20) Configuramos la fuente y la distribución del teclado para la consola. Para eso editamos
nano /etc/vconsole.conf
y agregamos (el archivo esta vacío)
KEYMAP=la-latin1
FONT=lat9v-16
FONT_MAP=8859-1_to_uni
y luego hacemos
chmod 644 /etc/vconsole.conf
chown root:root /etc/vconsole.conf
y ahora seteamos la configuración por defecto
localectl set-keymap la-latin1
Ahora hacemos
nano /etc/mkinitcpio.conf
y agregamos "consolefont" y "keymap" en la sección "HOOKS" del archivo. Con esto agregamos la configuración a la imagen de inicio para tener la configuración desde el arranque. Tiene que quedar así la sección HOOKS del archivo
HOOKS="base udev autodetect pata scsi sata filesystems consolefont keymap"
Guardamos, salimos y compilamos la imagen de inicio de vuelta:
mkinitcpio -p linux
21) Configuramos la localización
nano /etc/locale.gen
descomentar los dos ES-AR (utf e iso8859-1) y luego ejecutar
locale-gen
localectl set-locale LANG="es_AR.ISO-8859-1"
Esto además nos provee la ventaja de que queda configurado para X11 también.

22) Establecer la zona horaria
timedatectl set-timezone America/Argentina/Buenos_Aires
23) Establecer el reloj de la computadora con NTP (recordar conectarse a internet primero con wifi-menu wlan0)
pacman -Sy ntp libedit
nano /etc/ntp.conf
y colocamos los servidores de Argentina en mi caso
server 0.ar.pool.ntp.org iburst
server 2.south-america.pool.ntp.org iburst
server 3.south-america.pool.ntp.org iburst 
Luego guardamos y salimos. Habilitamos el arranque por defecto
systemctl enable ntpd
Ahora comprobamos su funcionamiento (puede tardar hasta media hora en sincronizar, a mi me tardó 3 minutos)
systemctl start ntpd
ntpq -np
Tenemos que ver uno de los servidores con un asterisco. Eso significa que la hora ya está sincronizada con la de hora de la red.


Si usas Windows en la misma máquina es necesario hacer una configuración adicional. Ver https://wiki.archlinux.org/index.php/Time_(Español)

24) Agregamos repositorios: yo el único que quiero agregar a los que vienen por defecto es "multilib", así que hago:
nano /etc/pacman.conf
y lo descomento, y luego, actualizamos las bases de datos y los paquetes del sistema entero con
pacman -Syu
25) Creamos un usuario, en este caso el mio se llama faktorqm
adduser faktorqm
Ese comando les va a solicitar varios datos, yo deje a todos los que vienen por defecto. En la lista de grupos, desde la implementación de systemd ya no es necesario agregarlo a los grupos, así que esa parte la omitimos.

26) Instalamos reflector. Reflector es un programa que sirve para mantener actualizada la lista de los servidores más rápidos según el propio ranking de la página de ARCH.
pacman -Sy reflector
y finalmente, cada vez que se quieran determinar mejores mirrors:
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
(con esto hacemos una copia de seguridad de la lista de mirrors que estábamos usando por si algo sale mal)
reflector --sort rate -l 10 -f 5 --save /etc/pacman.d/mirrorlist
Para hacer la vida mas fácil, le ponemos un alias para que lo haga automáticamente y no tener que andar acordándonos de tan tediosos comandos
nano /home/faktorqm/.bashrc
y ahí­ se agrega una lí­nea como la que sigue:
alias actualiza_lista_repo="reflector --sort rate -l 10 -f 5 --save /etc/pacman.d/mirrorlist && pacman -Syu"
NOTA: Vos le podes poner el nombre que quieras, yo le puse actualiza_lista_repo.

27) Instalamos yaourt. La comunidad de ARCH mantiene y actualiza muchísimos paquetes que "no están soportados oficialmente" pero la realidad es que funcionan y muy bien. Estos paquetes se encuentran en lo que se conoce como AUR (Arch User Repository o Repositorio de usuarios de ARCH) y yaourt se encarga de compilarlos e instalarlos como paquete. Más info en https://aur.archlinux.org/

Editamos la configuración del pacman para poder agregar el paquete de yaourt.
nano /etc/pacman.conf
y agregamos
[archlinuxfr]
Server = http://repo.archlinux.fr/x86_64
y luego hacemos
pacman -Sy yaourt
y ya está. La sintaxis para instalar/desinstalar es igual o casi igual que para pacman.

28) Instalamos el servidor gráfico X y los drivers de la placa de video. Yo tengo una placa intel, asi que voy a instalar los drivers para intel utilizando
pacman -Sy xf86-video-intel intel-dri lib32-intel-dri
y luego para instalar el servidor gráfico hacemos
pacman -Sy xorg-server xorg-xinit xorg-utils xorg-server-utils xorg-apps xorg-twm xorg-xclock xterm
En mi caso tambien tengo que instalar el driver para el synaptics porque se trata de una notebook
pacman -Sy xf86-input-synaptics
Los paquetes xorg-twm; xorg-xclock y xterm son pura y exclusivamente para probar si el servidor X está funcionando. Pueden no instalarlo sino quieren.

Ponemos la distribución del teclado para el servidor X
localectl set-x11-keymap la-latin1
Para poner la distribución del teclado desde el inicio (en nuestro caso para KDM) hacemos
nano /etc/X11/xorg.conf.d/10-evdev.conf
y ubicamos esta sección en el archivo
Section "InputClass"
          Identifier "evdev keyboard catchall"
          MatchIsKeyboard "on"
          MatchDevicePath "/dev/input/event*"
          Driver "evdev"
EndSection
y le tenemos que agregar la linea Option "XkbLayout" "latam" y nos tiene que quedar así
Section "InputClass"
          Identifier "evdev keyboard catchall"
          MatchIsKeyboard "on"
          MatchDevicePath "/dev/input/event*"
          Driver "evdev"
          Option "XkbLayout" "latam"
EndSection
NOTA 0: Para aquellos usuarios que posean placas de video NVIDIA, creo que pueden visitar https://wiki.archlinux.org/index.php/Nvidia porque el que esta en español está desactualizado. Fijense que para mother que soporten EFI (y supongo tambien que UEFI) no funciona.
NOTA 1: El driver privativo de ATI no funciona si el ACPI no está correctamente configurado.
NOTA 2: Para usuarios de las últimas placas ATI deben instalar directamente pacman -Sy catalyst-total
NOTA 3: El driver privativo de ATI genera un mensaje en el kernel (lo pueden ver con el dmesg) y deshabilita el lock debugging. Creo que no es tan grave, pero estén atentos!
NOTA 4: En caso de instalar el driver de ATI legacy, ir a nano /boot/grub/grub.cfg y agregar nomodeset a las dos lineas del kernel (arranque y modo por fallos). En mi caso cuando reinicié, se me quedo la pantalla negra y hasta que no hice ese cambio no funcionó.
NOTA 5: No es necesario el nomodeset si estas usando el driver libre de ATI xf86-video-ati.
NOTA 6: La biblioteca lib32-intel-dri es para tener aceleración 3D en aplicaciones 32 bits.

29) Instalamos el escritorio de nuestra preferencia, en mi caso KDE.


Antes que nada, hay que saber que el código fuente de KDE SC está organizado en diversas categorías llamadas módulos (de ahí el “SC” = software compilation, o compilación de software), que a su vez incluyen una o más aplicaciones de KDE. En ArchLinux, es posible instalar cada módulo de dos maneras posibles: usando grupos o meta paquetes. Hay un grupo (y un meta paquete) por cada módulo de KDE SC.

¿Cuál método elegir? Depende del gusto de cada usuario:

Al usar grupos de paquetes, es posible desinstalar algún paquete que pertenezca a algún grupo, sin que esto afecte a los otros paquetes miembros del grupo. Por otro lado, si en una futura versión de KDE SC algún grupo incluye un nuevo paquete, éste no será incluido de manera automática cuando actualices el sistema.

Al usar meta paquetes no tendremos dicha limitante (todo nuevo paquete es incluido automáticamente en su respectivo meta paquete), pero la única manera para desinstalar algún paquete que pertenezca a algún meta paquete, es desinstalando primero el meta paquete y luego el paquete en sí; esta acción no desinstala el resto de los paquetes que pertenecen al meta paquete, pero perdemos su ventaja principal, pues los nuevos paquetes ya no serían agregados al meta paquete de manera automática.

El que mejor se adapta a mis necesidades son los grupos de paquetes.
pacman -Sy kdebase-workspace kdebase phonon-vlc dbus mesa-demos kdeplasma-applets-networkmanagement networkmanager kpartsplugin kdebase-kdialog kdegraphics-okular kdemultimedia-kmix kdeutils-kcalc kdegraphics-gwenview ttf-dejavu ttf-liberation ttf-freefont kdegraphics-ksnapshot kipi-plugins 
Si en lugar de instalar el escritorio base, queres instalar el escritorio completo, simplemente intercambia kdebase por kde y se instalarán alrededor de 700Mb de programas pero vas a tener el escritorio KDE completo con todas las aplicaciones. El paquete phonon-vlc es el programa VLC (y backend), para mi, el mejor reproductor, podés no instalarlo si no es de tu preferencia. El paquete mesa-demos es para poder correr la utilidad glxinfo y glxgears. De esta manera vamos a poder verificar si la aceleración 3D está corriendo efectivamente.
Ahora configuro el arranque para que el entorno gráfico sea el entorno por defecto:
systemctl enable kdm
Para configurar KDE SC en idioma español:
pacman -Sy kde-l10n-es
Si el teclado no nos quedó en español, vamos a system settings -> input devices, pestaña "layouts" y luego nos aparecerá una ventana y debemos seleccionar cada campo como aparece aquí

En el caso de poseer otras distribuciones instaladas eliminarlas y dejar solo la de la latam.

30) Instalamos algunos paquetes (aplicaciones) más que nos van a ser muy útiles a la hora de configurar nuestro sistema
pacman -Sy flashplugin jre7-openjdk gstreamer0.10-plugins pkgfile samba opera bash-completion sudo dosfstools ntfs-3g cups cups-pdf
El jre7 es el Java runtime environment (entorno de ejecución de Java).
El gstreamer son algunos codecs de audio y video.
El samba es para compartir archivos en una red con clientes Windows.
Si lo instalan, acuérdense de agregarlo al inicio del sistema con
systemctl enable smbd
El pkgfile es un programa que te permite buscar en que paquete está un determinado ejecutable, es sumamente útil para instalar paquetes que nos faltan. Se usa así:
- para actualizar la base de datos: pkgfile --update
- para buscar: pkgfile -s nombre_del_archivo
El opera es un navegador, si no les gusta, instalen el de su preferencia.
El paquete bash-completion sirve para autocompletar comandos en bash presionando la tecla TAB.
Para poder usar sudo tengo que agregar a mi usuario al grupo wheel
gpasswd -a faktorqm wheel
visudo
y descomento la linea que dice %wheel ALL=(ALL) ALL y grabo presionando ":wq" (sin comillas). Lamentablemente hay que reiniciar para que funcione, asi que esperamos hasta el último paso.
El paquete dosfstools es para poder formtear pendrives en FAT32.
Si queres automontar las particiones de Windows con ntfs-3g (de lo contrario solo root las puede montar)
mkdir -p /media/windows
nano /etc/fstab
y luego debe quedar así la línea que le agregamos al fstab:

/dev/sdb1 /media/windows ntfs-3g gid=users,fmask=113,dmask=002 0 0

Los parámetros gid=users,fmask=113,dmask=002 esto es para que los que están en el grupo de usuarios puedan escribir tranquilos en la partición.
Cups es para imprimir y cups-pdf es para tener una impresora PDF.

31) Ahora vamos a configurar la red para que se pueda configurar desde el entorno gráfico.
systemctl disable netfcg
systemctl enable NetworkManager
32) Reiniciamos y deberíamos iniciar el sistema con el entorno gráfico, con la aceleración gráfica activada, y deberíamos poder iniciar sesión con el usuario que creamos.


Ojalá hayan disfrutado de su instalación y uso. Nos vemos en el siguiente post!!

No hay comentarios:

Publicar un comentario