ArchLinux

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)