ArchLinux
Gregorio Espadas# ArchLinux
## Instalacion de ArchLinux
Referencias:
- [Installation guide](https://wiki.archlinux.org/index.php/Installation_guide)
- [USB flash installation media](https://wiki.archlinux.org/index.php/USB_Installation_Media)
- [Partitioning](https://wiki.archlinux.org/index.php/Partitioning)
### Descargar ISO de Instalación
Visitar la [página de descargas oficial](https://www.archlinux.org/download/) y
descargar el último ISO liberado, así como su respectiva firma *PGP*.
Verificamos la *ISO* con la firma *PGP*:
sudo pacman-key -v archivo.iso.sig
Comprobar el nombre del dispositivo de nuestro pendrive USB, con algunos de los
siguientes metodos:
lsblk
dmesg | tail
dfc
Asumiremos, para efectos de la presente instalacion, que el dispositivo es
/dev/sdb
Desmontar el dispositivo:
sudo umount /dev/sdb
Grabar la imagen *ISO* en un *pendrive*:
dd if=archivo.iso of=/dev/sdb
### Preparar el disco duro
Establecer la distribución de nuestro teclado:
loadkeys es
o
loadkeys la-latin1
Para particionar el Disco Duro on **MBR**:
fdisk /dev/sdx
Para particionar el dico duro con **GPT**:
gdisk /dev/sdx
Formatear las Particiones, con alguno de los siguientes comandos:
mkfs.ext4 /dev/sdax
mkfs -t ext4 /dev/sdax
Formatear **Swap**:
mkswap /dev/sdaX
Activar **Swap** con:
swapon /dev/sdaX
Montamos la partición **root** (`/`) en **/mnt**:
mount /dev/sdaX /mnt
Creamos los directorios para las otras particiones dentro de **/mnt**
mkdir /mnt/boot
mkdir /mnt/home
Y montamos las respectivas particiones
mount /dev/sdaY /mnt/boot
mount /dev/sdaZ /mnt/home
### Instalación Base
Instalación del Sistema Base:
pacstrap /mnt base base-devel
Instalación del Gestor de Arranque y la herramienta para la correcta detección de multi-boot:
pacstrap /mnt grub-bios os-prober
Si sólo se usará **WiFi** después de la instalación, es necesario instalar los paquetes siguientes (para que posteriormente se pueda ejecutar `wifi-menu`):
pacstrap /mnt dialog iw wpa_supplicant wpa_actiond
Generar el archivo **fstab** con:
genfstab -U -p /mnt >> /mnt/etc/fstab
Hacemos un **chroot**:
arch-chroot /mnt
Establecer el nombre de nuestro **hostname** en el archivo `/etc/hostname`. Ejemplo:
localhost
Establecer ubicación geográfica:
ln -s /usr/share/zoneinfo/America/Mexico_City /etc/localtime
Establecer localización en el archivo `/etc/locale.conf`. Ejemplo:
LANG=es_MX.UTF-8
Y en el archivo `/etc/locale.gen` debemos descomentar la localización:
...
#es_HN ISO-8859-1
es_MX.UTF-8 UTF-8
#es_MX ISO-8859-1
...
Generar localización con:
locale-gen
Establecer la distribución del teclado en el archivo `/etc/vconsole.conf`. Ejemplo:
KEYMAP=es
Configuramos el **bootloader**, en este caso, **GRUB**:
grub-install /dev/sda
Y creamos el archivo **grub.cfg** con:
grub-mkconfig -o /boot/grub/grub.cfg
Verificar el archivo `/etc/mkinitcpio.conf` según necesidades, y crear **disco RAM inicial** con:
mkinitcpio -p linux
Establecer la contraseña para el usuario **root** con:
passwd
Salir del entorno **chroot** con:
exit
Desmontar las particiones previamente montadas en **/mnt** con:
umount /mnt/{boot,home,}
Y finalmente, reiniciamos el sistema con:
reboot
Luego de reiniciar, la red no está habilitada. Para mostrar los nombres de los dispositivos de red ([ya no es eth0, wlan0](http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames)):
ip link show
Habilitar la interfaz de red apropiada:
systemctl enable dhcpcd@xxxxx.service
Ejecutarla de inmediato:
systemctl start dhcpcd@xxxxx.service
En caso de conexión vía Wi-Fi, ejecutar:
wifi-menu
Creación del usuario:
useradd -m -g users -G audio,lp,optical,storage,video,wheel,games,power,scanner -s /bin/bash gespadas
Especificar la contraseña del usuario:
passwd gespadas
Instalar **sudo**:
pacman -S sudo
Luego, ejecutaremos **visudo** para editar `/etc/sudoers`:
visudo
Ahí descomentar la línea:
%wheel ALL=(ALL) ALL
Cambiarnos a nuestro usuario:
su - gespadas
Probando **sudo**:
sudo pacman -Syu
## ¿Usar startx o un Display Manager?
Usar startx:
systemctl disable <dm>.service
systemctl disable graphical.target
systemctl enable multi-user.target
Usar un Display Manager:
systemctl disable multi-user.target
systemctl enable graphical.target
systemctl enable <dm>.service
Donde <dm> = gdm | kdm | slim | lxdm | lightdm | sddm
## Establecer el idioma del teclado
Crear un nuevo archivo con el nombre `/etc/X11/xorg.conf.d/10-keyboard.conf`
sudo vim /etc/X11/xorg.conf.d/10-keyboard.conf
y en su contenido ingresar:
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "on"
Option "XkbLayout" "es"
EndSection
## Hacer que TTY se vea excelente
Si tenemos el booteo de **ArchLinux** directo a **TTY** (ver "Usar startx" más arriba), podemos hacer que la terminal se vea excelente:
1. Instalar la fuente "Terminus".
sudo pacman -S terminus-font
2. Configurar la fuente en `/etc/vconsole.conf`.
KEYMAP=es
FONT=ter-132n
FONT_MAP=8859-1
El valor `ter-132n` se refiere a la fuente **Terminus**, usando la parte 1 del ISO/IEC 8859 (Latin-1
Western European), a un tamaño de 32, de tipo "normal". Otro ejemplo: `ter-116b` (b=bold).
3. Si la fuente parece no cambiar luego del booteo, o cambia sólo temporalmente, lo más seguro es que haya sido reseteada al inicializarse el driver gráfico y la consola ha cambiado a *framebuffer*. Para evitarlo, debemos cargar el driver de video más pronto durante el proceso de booteo, en otras palabras, debemos agregar el módulo `nouveau` al arreglo `MODULES` en el archivo `/etc/mkinitcpio.conf`.
MODULES="... nouveau ..."
Entonces, debemos ejecutar:
sudo mkinitcpio -p linux
Cabe mencionar que lo anterior sólo es posible si se usa **Nouveau** (ya que usa de manera predeterminada **KMS**), no es válido para el driver privativo de **Nvidia**.
Referencias:
- [1](https://wiki.archlinux.org/index.php/Fonts#Changing_the_default_font)
- [2](https://wiki.archlinux.org/index.php/Nouveau#Early_start)
- [3](https://wiki.archlinux.org/index.php/Kernel_Mode_Setting#Early_KMS_start)
## Pacman
Usos:
pacman -S # Instala 'paquete'
pacman -Ss # Busca 'paquete' en los repositorios de pacman.conf
pacman -Sc # Limpia la cache de paquetes antiguos y no instalados
pacman -Scc # Limpia toda la cache
pacman -Rns # Desinstala 'paquete' y dependencias
pacman -Rd # Desinstala sólo 'paquete'
pacman -Qo # A que paquete pertenece /ruta/archivo
pacman -Q # Chequea si 'paquete' está instalado
pacman -Qtdq # Muestra todos los paquetes huérfanos
pacman -Ql # Lista todos los archivos de 'paquete'
pacman -Qc # Ve el changelog de un 'paquete'
pacman -Qm # Lista de paquetes instalados vía Yaourt
Para eliminar los paquetes que ya no son utilizados:
pacman -R $(pacman -Qdtq)
## Yaourt
Para instalar `yaourt`, primero debemos agregar el repositorio francés, editando el archivo `/etc/pacman.conf`
sudo vim /etc/pacman.conf
y agregamos al final:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
Finalmente, instalamos `yaourt`
sudo pacman -Sy yaourt
Para buscar e instalar un paquete desde AUR, usamos:
yaourt <paquete>
Otros usos:
yaourt -Syu --aur # Actualiza todos los paquetes, incluyendo AUR
yaourt -Syua # Igual que el anterior, pero más corto
yaourt -Sb # Instala 'paquete' compilándolo desde abs
yaourt -Qm # Lista de paquetes instalados desde AUR con yaourt
Referencias:
- [1](http://wiki.archlinux.fr/Repos_archlinuxfr)
- [2](http://wiki.archlinux.fr/Yaourt)
## ¿Se fue la luz mientras pacman se estaba ejecutando?
Si los paquetes no se habían descargado al 100%, no hay tanto problema, sólo debemos ejecutar nuevamente:
sudo pacman -Syyu
Si **pacman** ya estaba instalando o actualizando paquetes, son varios los problemas que pudieron haber ocurrido. Aquí algunos de ellos.
Error # 1:
error: GPGME error: Invalid crypto engine
Primero, intentar con sólo:
sudo pacman-key --init
Si no se resuelve, ejecutar:
sudo rm -R touch /etc/pacman.d/gnupg
sudo pacman-key --init
sudo touch /etc/pacman.d/gnupg/trustdb.gpg
sudo pacman-key --init
pacman-key --populate archlinux
Error # 2:
ldconfig: El fichero /usr/lib/xxxxxx está vacío, no se comprueba.
Primero, Intentar con sólo:
sudo pacman -Scc
¿Se resolvió?
sudo ldconfig
Si no se resuelve, debemos buscar qué paquete usa dicha(s) librería(s):
sudo pacman -Qo /usr/lib/xxxxxx
Si el comando anterior nos dice
error: Ningún paquete posee /usr/lib/xxxxxx
entonces debemos hacer una búsqueda manual (local/web/¡adivinar!) del paquete.
Cuando ya sepamos de qué paquete(s) de trata(n):
sudo pacman -S <PAQUETE> --force
Lo anterior hay que hacerlo por todos los paquetes/librerías que tengan error.
## KDE
Instalación completa:
sudo pacman -S kde-meta kde-l10n-es
Para que las aplicaciones GTK se vean bien:
sudo pacman -S oxygen-gtk2 oxygen-gtk3 kde-gtk-config
Para que **Firefox** se vea bien en **KDE**, usar el tema:
[GTK+ Native](https://addons.mozilla.org/firefox/addon/gtk-native/).
## Impresora y Scanner
Instalar lo básico:
sudo pacman -S cups libcups
Inicializando CUPS:
sudo systemctl enable cups.service
sudo systemctl start cups.service
Configurando impresoras HP:
sudo pacman -S hplip pygobject
hp-setup
Instalando Simple Scan:
sudo pacman -S simple-scan
Para que el scanner sea reconocido, es importante que al final del archivo `/etc/sane.d/dll.conf`
sudo vim /etc/sane.d/dll.conf
descomentar la línea
# hpaio
Para probar que el scanner ya ha sido reconocido, usar:
sudo sane-find-scanner
sudo scanimage -L
Para imprimir:
lpr -P Deskjet_1000_J110 -# 100 sobre.pdf
Para usar **Google Cloud Print** en CUPS:
https://github.com/simoncadman/CUPS-Cloud-Print
http://www.niftiestsoftware.com/cups-cloud-print/
## Programas y Aplicaciones para ArchLinux desde Repositorios Oficiales
Los indispensables
sudo pacman -S firefox firefox-i18n-es-mx flashplugin chromium
sudo pacman -S libreoffice libreoffice-es keepassx qps
sudo pacman -S p7zip zip unzip unrar
Fuentes
sudo pacman -S ttf-dejavu ttf-liberation ttf-bitstream-vera ttf-freefont ttf-inconsolata ttf-droid ttf-ubuntu-font-family
Multimedia
sudo pacman -S libdvdcss libdvdread libdvdnav
sudo pacman -S vlc smplayer smplayer-themes smplayer-skins
sudo pacman -S mkvtoolnix-gtk amarok k3b cdrdao dvd+rw-tools
sudo pacman -S mediainfo mediainfo-gui
Diseño Gráfico
sudo pacman -S gimp inkscape
Particiones y Discos Duros
sudo pacman -S gparted ntfs-3g dosfstools ntfsprogs gsmartcontrol
Herramientas CLI
sudo pacman -S terminator htop dfc glances inxi screenfetch rsync wget youtube-dl
sudo pacman -S ranger libcaca highlight atool w3m poppler mediainfo
Detalles sobre **ranger**:
ranger --copy-config=all
- [Ranger en ArchWiki](https://wiki.archlinux.org/index.php/Ranger)
- [Ranger Tutorial](https://www.digitalocean.com/community/tutorials/installing-and-using-ranger-a-terminal-file-manager-on-a-ubuntu-vps)
- [Ranger Oficial](http://nongnu.org/ranger/)
## Programas y Aplicaciones para ArchLinux desde AUR
Sublime Text
yaourt -S sublime-text
Dropbox
yaourt -S dropbox dropbox-kde-systray-icons
QbitTorrent
yaourt -S qbittorrent
Gimp - Save for Web (Plugin)
yaourt -S gimp-plugin-saveforweb
Herramientas CLI
yaourt -S alsi
Chrome OS Fonts, incluye [**Cousine**](http://www.google.com/fonts/specimen/Cousine), [recomendada](http://timotheepoisot.fr/2014/01/01/vim-writing-environment/) para usar en la terminal con **vim** y **markdown**.
yaourt -S ttf-chromeos-fonts
MS Fonts ([Favor de leer](https://wiki.archlinux.org/index.php/MS_Fonts))
yaourt -S ttf-ms-fonts
Otras
- [usb2format](https://github.com/wifiextender/usb2format)
- [Kcmsystemd](https://github.com/rthomsen/kcmsystemd)
## Paquetes adicionales (no necesarios) desde AUR
Instalar el plugin **Pepper Flash** de **Google Chrome** para **Chromium**
- Versión Estable: `yaourt -S chromium-pepper-flash-stable`
- Versión en Desarrollo (funciona con iron-bin): `yaourt -S chromium-pepper-flash`
Instalar **Google Talk Plugin**:
yaourt -S google-talkplugin
**LibreOffice** con iconos **Faenza** (AUR)
1. Instalar: `yaourt -S libreoffice-faenza-mod`
2. Elegir "Alto Contraste" (hicontrast) en Herramientas » Opciones » Ver
3. ¿Actualizaste **LibreOffice**? Es necesario reinstalar `libreoffice-faenza-mod`
4. [Una alternativa](http://gnome-look.org/content/show.php?content=157970)
## Deshabilitar el historial de Documentos Recientes
En aplicaciones GNOME:
rm -f ~/.local/share/recently-used.xbel
mkdir ~/.local/share/recently-used.xbel
En aplicaciones KDE:
rm ~/.kde4/share/apps/RecentDocuments/*
chmod 500 ~/.kde4/share/apps/RecentDocuments
## Configurando el auto montaje de unidades USB
Paquetes necesarios para Openbox:
udevil udisks udiskie ntfs-3g polkit-gnome gvfs gamin
Crear como root: /etc/polkit-1/localauthority/50-local.d/10-udiskie.pkla
[Local Users]
Identity=unix-group:storage
Action=org.freedesktop.udisks.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Por último, el usuario debe pertenecer al grupo `storage`.
Referencias:
- [1](https://wiki.archlinux.org/index.php/Udev)
- [2](https://wiki.archlinux.org/index.php/Udiskie)
- [3](https://wiki.archlinux.org/index.php/PCManFM)
## Error con MIT-MAGIC-COOKIE-1
¿Qué hacer?
- Asegurarse que tener instalado el paquete `xorg-xauth`
- Ver el contenido del archivo `~/.Xauthority` usando el comando `xauth list`
- Eliminar el archivo `~/.Xauthority`
## Ajustando KDE
Para **ArchLinux** + **KDE**, usar esta genial combinación:
yaourt -S wallpaper-archpaint2 kdm-theme-archpaint2 ksplash-archpaint2
Extras:
yaourt -S kdesudo kde-servicemenus-rootactions
## ¿No hay sonido en Amarok?
Solución 1:
sudo pacman -S xine-lib
Solución 2:
sudo pacman -S phonon-vlc
Preferencias » Configurar Amarok » Apartado "Reproducción" » Botón "Configurar Phonon" » Pestaña "Motor" » Seleccionar "VLC" y presionar el botón "Preferir". Reiniciar Amarok para que los cambios surtan efecto.
## LAMP
Para usar un directorio personalizado para una base de datos en particular (todo como *root*):
su -
systemctl stop mysqld.service
cd /var/lib/mysql
mv mydatabasedir /new/dir/
ln -s /new/dir/mydatabasedir/ .
chown -h mysql:mysql mydatabasedir
systemctl start mysqld.service
## Sensores de temperatura del CPU
Instalar `lm_sensors` y opcionalmente `xsensors`:
sudo pacman -S lm_sensors xsensors
Para configurarlo, ejecutar:
sensors-detect
Lo recomendable es dar ENTER a cada pregunta, para aceptar las respuestas predeterminadas, que son las más seguras. Al final, el daemon se habilitará y ejecutará con **systemd**.
Finalmente, para verificar la temperatura, ejecutar:
sensors
O bien, usar `xsensors` que tiene GUI.
[Fuente](https://wiki.archlinux.org/index.php/lm_sensors)
## Enlaces Extras
- [How To install and configure HP printer in Arch Linux](http://www.muktware.com/5450/how-install-and-configure-hp-printer-arch-linux)
- [How to install Arch Linux, while keeping it simple](http://www.muktware.com/5451/how-install-arch-linux)
- [Xyne's Arch Linux Stuff & More](http://xyne.archlinux.ca/)
- [Lightweight Open Source System Software (by Laura Michaels)](http://www.distasis.com/cpp/doswin.htm)
- [Archlinux Ultimate Install Script](https://github.com/helmuthdu/aui)
- [WiFi Select for ArchLinux console](https://github.com/sphynx/wifi-select)
- [Kalu - An Upgrade Notifier for ArchLinux](https://bitbucket.org/jjacky/kalu)
- [Simulando rc.local y rc.local.shutdown en systemd](http://dark-linux.net/rc-local-con-systemd-su-archlinux/)
- [Controla la salud de tus discos duros con el comando smartctl](http://lamiradadelreplicante.com/2013/08/16/controla-la-salud-de-tus-discos-duros-con-smartctl/)
- [Acelerando el sistema](http://archeando.wordpress.com/2013/09/06/acelerando-el-sistema/)
- [ArchServers](http://archservers.com/)
- [SSH Keys](https://wiki.archlinux.org/index.php/SSH_keys)
- [Instalar Arch Linux en Raspberry Pi](http://blog.desdelinux.net/instalar-arch-linux-en-raspberry-pi/)
- [Instalar KDE Frameworks 5 en Arch Linux](http://blog.andreascarpino.it/kde-frameworks-packages-on-arch-linux/)
- [Montar MicroSD de un Teléfono Android en ArchLinux](https://wiki.archlinux.org/index.php/MTP)
- [Comando locate en ArchLinux](https://wiki.archlinux.org/index.php/locate)