Yay es un asistente de instalación de paquetes para ArchLinux con capacidad para instalar paquetes desde el Repositorio de Usuarios de ArchLinux (AUR).
Cuando se trata de instalar paquetes de los repositorios oficiales de ArchLinux, yay tan solo funciona como una interfaz de Pacman, siendo este último el encargado de hacer todo el trabajo pesado, lo que garantiza que los resultados serán los mismos que si se usase Pacman directamente, pero con el añadido de una interfaz de usuario mucho mas amigable y fácil de usar que la de Pacman.
Herramientas como yay permiten instalar paquetes desde el Repositorio de Usuarios de Arch Linux (AUR), que no es soportado por pacman.
Los paquetes que se encuentran en el repositorio AUR no pasan por los mismos controles de calidad y estabilidad que los de los repositorios «oficiales», úsalo con precaución.
Instalación
Abrimos una terminal y ejecutamos los siguientes comandos:
$ sudo pacman -Sy
$ sudo pacman -S git base-devel
$ cd /tmp
$ rm -rf yay 2> /dev/null
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
Configuración
Activar colores
Para activar la salida colorida en Pacman y por extensión en yay (recordar que yay usa Pacman para todos sus procesos), se puede usar este comando:
sudo sed -i '/^#Color/s/^#//' /etc/pacman.conf
Uso básico
El uso de yay, se parece mucho al de yaourt, lo que lo hace, para mi gusto, mucho mas fácil de manejar.
Actualizar base de datos de paquetes
Con este comando yay se descargará la última versión de la base datos de paquetes.
$ yay -Sy
Actualizar sistema y opcionalmente los paquetes instalados en AUR
Después de actualizar el sistema busca automáticamente si hay actualizaciones en AUR, lo ejecuta por separado por cuestiones de seguridad.
$ yay -Syu
Actualizar base de datos de paquetes e instalar actualizaciones, todo en uno
$ yay
Si, así de simple.
Buscar un paquete
Buscar un paquete con yay es tan sencillo como escribir el nombre del paquete o algunas palabras clave después de yay y él buscará esos terminios y presentará una lista de coincidencias.
$ yay PAQUETE
El resultado será una lista numerada paquetes para que podamos seleccionar cuales queremos instalar. Con tan solo escribir el número del paquete que queramos, yay lo seleccionará y lo instalará.
Por ejemplo:
$ yay -Sy
[sudo] password for elias:
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
multilib is up to date
$ yay libnm
12 aur/libnm-glib-secure 1.12.3dev+1+g0a3755c17-2 (+0 0.00%)
NetworkManager client library (legacy)
11 aur/libnm-secure 1.12.3dev+1+g0a3755c17-2 (+0 0.00%)
NetworkManager client library
10 aur/libnm-glib-ifupdown 0.9.8.10-6 (+5 0.00%)
NetworkManager library
9 aur/libnma-git 1.8.19.dev.r65.gd7a03bb4-1 (+11 0.01%)
NetworkManager GUI client library
8 aur/libnm-gtk-git 1.8.19.dev.r65.gd7a03bb4-1 (+11 0.01%)
NetworkManager GUI client library (legacy)
7 aur/libnm-git 1.15.2.r22048.g027ef98cd-1 (+29 0.02%)
NetworkManager client library
6 aur/libnm-glib-git 1.15.2.r22048.g027ef98cd-1 (+29 0.02%)
NetworkManager client library (legacy)
5 multilib/lib32-libnm-glib 1.14.4-1 (187.0 KiB 802.0 KiB)
NetworkManager client library (legacy)
4 multilib/lib32-libnm 1.14.4-1 (301.4 KiB 1.3 MiB)
NetworkManager client library
3 extra/libnma 1.8.20-1 (111.8 KiB 723.0 KiB) (Installed)
NetworkManager GUI client library
2 extra/libnm-glib 1.14.5dev+17+gba83251bb-2 (624.0 KiB 6.5 MiB) (Installed)
NetworkManager client library (legacy)
1 extra/libnm 1.14.5dev+17+gba83251bb-2 (902.8 KiB 9.3 MiB) (Installed)
NetworkManager client library
==> Packages to install (eg: 1 2 3, 1-3 or ^4)
==> 1
warning: libnm-1.14.5dev+17+gba83251bb-2 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (1) libnm-1.14.5dev+17+gba83251bb-2
Total Installed Size: 9.25 MiB
Net Upgrade Size: 0.00 MiB
:: Proceed with installation? [Y/n]
Listar los paquetes instalados desde AUR
$ yay -Qqm
Instalar uno o varios paquetes por su nombre exacto
$ yay -S PAQUETE_1 [PAQUETE_2 PAQUETE_3 ...]
Eliminar uno o varios paquetes
$ yay -R PAQUETE_1 [PAQUETE_2 PAQUETE_3 ...]
Si quieres hacer una eliminación poco mas exhaustiva puedes probar a usar este otro comando. Elimina el/los paquete/s incluyendo todas sus dependencias, siempre que no sean requeridos por otros paquetes; y no fueron instalados explícitamente por el ti. Esta operación es recursiva y ayuda a mantener un sistema limpio sin huérfanos.
$ yay -Rns PAQUETE_1 [PAQUETE_2 PAQUETE_3 ...]
Y por último una forma un poco más bruta para eliminar paquetes seria esta otra. Elimina el/los paquete/s, así como todos los paquetes que dependen de uno o más de los paquetes de destino. Esta operación es recursiva y debe usarse con cuidado, ya que puede eliminar muchos paquetes potencialmente necesarios.
$ yay -Rnc PAQUETE_1 [PAQUETE_2 PAQUETE_3 ...]
Limpiar la memoria caché de los paquetes
Recordemos que los paquetes descargados no se eliminan automáticamente al instalar nuevas versiones, eso provoca que el sistema se infle indiscriminadamente. La razón, poder volver a una versión anterior si algo se complica.
$ yay -Sc
Hay más, pero no es el objetivo de éste post. Creo que lo básico lo hemos cubierto, espero que les sea de utilidad.
Tweet to @eliasrm87
Francisco Rojas Jorquera
Excelente ,muchas gracias.
José Miguel
De nada. Francisco. Bienvenido al blog.
Saludos.
José Luis
¡Muchas gracias!
Yo necesito descargar/compilar/crear un paquete para instalarlo con posterioridad en un ordenador sin conexión a Internet.
¿Se puede hacer eso?
He buscado entre las opciones pero no me aclaro.
¡Saludos!
Elías R.M.
Hola José Luis,
Si quieres compilar un paquete en un equipo para instalarlo en otro, puedes hacerlo del siguiente modo:
makepkg -s
es la clave, ese comando compilara y empaquetará el programa sin instalarlo, por lo que ahora tan solo tendrás que copiar el archivo .pkg.tar.gz al otro equipo he instalarlo usando pacman:Para mas detalles te recomiendo que leas el este artículo de la Wiki de ArchLinux.
Sete
Muchas gracias
José Miguel
De nada, gracias a ti por comentar.
Saludos.
Leonardo
Después de usar durante años, debian y sus derivados estaba muy perdido con Arch.
Excelente tutorial.
Muchas gracias!
José Miguel
De nada compañero, yo también usé Debian durante años. Cuesta un poco adaptarse a Arch, todo lleva su tiempo, pero te aseguro que merece la pena.
Saludos.
jcescalante
Gracias por tu enseñanza… yo solo quería instalar Chrome en Manjaro y llegue aquí porque yaourt , no lo encontraba en Manjaro…. si estaba perdido esto me ha servido… aunque sigo navegando… aprendiendo gracias
José Miguel
Hola «jcescalante», no encuentras yaourt porque hace tiempo que está descontinuado. YAY es una buena alternativa, es lo que uso en mi ArchLinux.
Saludos.
Raúl
Los comandos para instalación no me resultaron:
$ sudo pacman -S git
$ git clone https://aur.archlinux.org/yay.git
$ cd yay
$ makepkg -si
Se me ocurrió instalarlo con pacman:
$ sudo pacman -S yay
Y listo, se instaló sin problemas.
Elías R.M.
Hola Raúl,
Acabo de probar los pasos que indicas que no te resultaron y han funcionado perfectamente, no se que podría haber pasado en tu caso. Seria muy interesante saber que error obtuviste.
Tampoco comprendo como has podido instalar yay con pacman, pues el paquete no está en los repositorio de ArchLinux.
Es tu sistema ArchLinux o un derivado? Tienes algún otro repositorio adicional agregado?
Saludos
Carlos Fuelagan
Hola, muy bueno la primera vez que lo instale me iba súper bien. Ahora deseo volver a instalarlo y me sale un error cuando ejecutó makepkg -si el error es (error 2 se produjo un fallo en build ().) ¿Podrían ayudarme? Muchas gracias de antemano.
Elías R.M.
Hola Carlos,
Muchas gracias por tu comentario!
He actualizado las instrucciones, puedes probar de nuevo?
Para poderte ayudar mejor necesitaría que me copies todo lo que aparece en la consola después de poner
makepkg -si
Saludos
Carlos Fuelagan
Gracias amigo, el problema se solucionó actualizando el sistema y ya lo pude instalar correctamente.