Instalación y actualización de paquetes (RSA-06)
En este apartado te muestro cómo instalar, buscar, eliminar y actualizar paquetes en las principales distribuciones de Linux.
Está organizado por las acciones comunes que todo usuario realiza con la paquetería de su distribución.
Dentro de cada acción te explico como ejecutar cada comandos dependiendo de la distribución siguiendo el orden:
- Debian / Ubuntu / distros
.deb
- Red Hat / Fedora / distros
.rpm
- Arch / Manjaro
- Gentoo
- Void Linux
Acción: Actualizar repositorios
Debian / Ubuntu (APT)
Sintaxis Avanzada:
$ sudo apt update && apt list --upgradable
$ sudo apt update -o Dir::Etc::sourcelist="sources.list.d/personal.list"
Sintaxis Básica:
$ sudo apt update
Fedora / CentOS / RHEL (DNF/YUM)
Sintaxis Avanzada:
$ sudo dnf makecache
$ sudo yum makecache fast
Sintaxis Básica:
$ sudo dnf check-update
Arch / Manjaro (PACMAN)
Sintaxis Avanzada:
$ sudo pacman -Syy # Fuerza resync completo de mirrors
Sintaxis Básica:
$ sudo pacman -Sy
Gentoo (EMERGE)
Sintaxis Avanzada:
# emaint sync -a
Sintaxis Básica:
# emerge --sync
Void Linux (XBPS)
Sintaxis Avanzada:
$ sudo xbps-install -S --repository=/var/lib/xbps/remote
Sintaxis Básica:
$ sudo xbps-install -S
Acción: Instalar un paquete
Debian / Ubuntu (APT)
Sintaxis Avanzada:
$ sudo apt install nombre=versión
$ sudo apt install nombre --no-install-recommends
Sintaxis Básica:
$ sudo apt install nombre-paquete
Fedora / CentOS / RHEL (DNF/YUM)
Sintaxis Avanzada:
$ sudo dnf install nombre --best --allowerasing
$ sudo yum install nombre --noplugins
Sintaxis Básica:
$ sudo dnf install nombre-paquete
Arch / Manjaro (PACMAN)
Sintaxis Avanzada:
$ sudo pacman -S nombre --needed
$ sudo pacman -S nombre --overwrite "*"
Sintaxis Básica:
$ sudo pacman -S nombre-paquete
Gentoo (EMERGE)
Sintaxis Avanzada:
# emerge --ask nombre
# emerge --verbose nombre
Sintaxis Básica:
# emerge nombre-paquete
Void Linux (XBPS)
Sintaxis Avanzada:
$ sudo xbps-install --repository=/mnt/repos nombre
Sintaxis Básica:
$ sudo xbps-install -y nombre
Acción: Eliminar un paquete
Debian / Ubuntu (APT)
Sintaxis Avanzada:
$ sudo apt purge nombre
$ sudo apt autoremove
Sintaxis Básica:
$ sudo apt remove nombre
Fedora / CentOS / RHEL (DNF/YUM)
Sintaxis Avanzada:
$ sudo dnf remove nombre --noautoremove
Sintaxis Básica:
$ sudo dnf remove nombre
Arch / Manjaro (PACMAN)
Sintaxis Avanzada:
$ sudo pacman -Rs nombre
$ sudo pacman -Rdd nombre
Sintaxis Básica:
$ sudo pacman -R nombre
Gentoo (EMERGE)
Sintaxis Avanzada:
# emerge --depclean
Sintaxis Básica:
# emerge -C nombre
Void Linux (XBPS)
Sintaxis Avanzada:
$ sudo xbps-remove -Oo
Sintaxis Básica:
$ sudo xbps-remove -R nombre
Acción: Buscar un paquete
Debian / Ubuntu (APT)
Sintaxis Avanzada:
$ apt-cache show nombre
$ apt list --installed | grep nombre
Sintaxis Básica:
$ apt search nombre
Fedora / CentOS / RHEL (DNF/YUM)
Sintaxis Avanzada:
$ dnf list available | grep nombre
Sintaxis Básica:
$ dnf search nombre
Arch / Manjaro (PACMAN)
Sintaxis Avanzada:
$ pacman -Qs nombre-parcial
Sintaxis Básica:
$ pacman -Ss nombre
Gentoo (EMERGE)
Sintaxis Avanzada:
$ eix nombre
Sintaxis Básica:
$ emerge --search nombre
Void Linux (XBPS)
Sintaxis Avanzada:
$ xbps-query -p pkgver -Rs nombre
Sintaxis Básica:
$ xbps-query -Rs nombre
Acción: Consultar información de un paquete instalado
Debian / Ubuntu (APT)
$ apt show nombre
$ dpkg -s nombre
Fedora / CentOS / RHEL (DNF/YUM)
$ dnf info nombre
$ rpm -qi nombre
Arch / Manjaro (PACMAN)
$ pacman -Qi nombre
Gentoo (EMERGE)
$ equery list nombre
$ emerge --pretend nombre
Void Linux (XBPS)
$ xbps-query -s nombre
$ xbps-query -p description -s nombre
Acción: Limpiar caché de paquetes
Debian / Ubuntu (APT)
Sintaxis Avanzada:
$ sudo apt autoclean
$ sudo apt-get clean && sudo apt-get autoclean
Sintaxis Básica:
$ sudo apt clean
RPM (DNF / YUM)
Sintaxis Avanzada:
$ sudo dnf clean packages
$ sudo yum clean metadata
Sintaxis Básica:
$ sudo dnf clean all
Arch (PACMAN)
Sintaxis Avanzada:
$ sudo pacman -Scc # Elimina toda la caché sin confirmación
Sintaxis Básica:
$ sudo pacman -Sc
Gentoo (EMERGE)
Sintaxis Avanzada:
# eclean-pkg
Sintaxis Básica:
# eclean-dist
Void Linux (XBPS)
Sintaxis Avanzada:
$ sudo xbps-remove --cachedir /var/cache/xbps --clean-cache
Sintaxis Básica:
$ sudo xbps-remove -Oo
Acción: Eliminar dependencias huérfanas
Debian / Ubuntu (APT)
Sintaxis Avanzada:
$ sudo apt-get autoremove --purge
Sintaxis Básica:
$ sudo apt autoremove
RPM (DNF)
Sintaxis Avanzada:
$ sudo dnf autoremove
Sintaxis Básica:
$ sudo dnf remove nombre --noautoremove
Arch (PACMAN)
Sintaxis Avanzada:
$ sudo pacman -Qdtq | sudo pacman -Rns -
Sintaxis Básica:
$ sudo pacman -Rns nombre
Gentoo
Sintaxis Avanzada:
# emerge --ask --depclean
Sintaxis Básica:
# emerge --depclean
Void Linux
Sintaxis Avanzada:
$ xbps-query -Rs orphan
Sintaxis Básica:
$ sudo xbps-remove -Oo
Acción: Instalar paquetes locales descargados (.deb, .rpm, etc.)
Debian / Ubuntu (dpkg
)
Sintaxis Avanzada:
$ sudo apt install -f # Corrige dependencias rotas
Sintaxis Básica:
$ sudo dpkg -i archivo.deb
RPM (Fedora, CentOS)
Sintaxis Avanzada:
$ sudo dnf install archivo.rpm
$ sudo rpm --test -ivh archivo.rpm
Sintaxis Básica:
$ sudo rpm -ivh archivo.rpm
Arch
Sintaxis Avanzada:
$ sudo pacman -U paquete.pkg.tar.zst --overwrite "*"
Sintaxis Básica:
$ sudo pacman -U paquete.pkg.tar.zst
Gentoo
Los paquetes se construyen desde código:
# emerge local/package
Void Linux
Sintaxis Avanzada:
$ xbps-query -p pkgver -f ./paquete.xbps
Sintaxis Básica:
$ sudo xbps-install --repository=. paquete.xbps
Acción: Extraer y ver contenido de un paquete
Debian (.deb)
Inspeccionar postinst / prerm:
$ cat control/postinst
Ver metadatos y scripts:
$ dpkg-deb -e archivo.deb ./control/
Extraer contenidos:
$ dpkg-deb -x archivo.deb ./destino/
RPM (.rpm)
Ver scripts:
$ rpm -qp --scripts archivo.rpm
Extraer contenido:
$ rpm2cpio archivo.rpm | cpio -idmv
Ver archivos incluidos:
$ rpm -qlp archivo.rpm
Arch (.pkg.tar.zst)
Scripts post-install: Arch usa archivos .INSTALL
dentro del paquete:
$ tar -xOf paquete.pkg.tar.zst .INSTALL
Extraer:
$ tar -xvf paquete.pkg.tar.zst -C destino/
Ver contenido:
$ tar -tvf paquete.pkg.tar.zst
Gentoo (Ebuild)
- Inspección manual: Gentoo usa funciones como
src_install
,pkg_postinst
, etc.
Ver scripts:
$ less /usr/portage/categoria/paquete/paquete.ebuild
Void (.xbps)
- Scripts (instalación vía template): Se encuentran en
srcpkgs/nombre/template
Extraer (requiere xbps-unpack
):
$ xbps-create -u -o paquete.xbps
Ver contenido:
$ xbps-query -X archivo.xbps
Comparativa de gestores de paquetes por distribución
Distribución | Gestor principal | Extensión de paquete | Soporte gráfico | Repositorios populares |
---|---|---|---|---|
Debian / Ubuntu | apt , dpkg | .deb | Sí (Synaptic ) | main , backports , non-free-firmware , universe , ppa |
Fedora / RHEL | dnf , rpm | .rpm | Sí (dnfdragora ) | EPEL , RPM Fusion , copr |
Arch / Manjaro | pacman | .pkg.tar.zst | Sí (pamac ) | AUR , Chaotic-AUR |
Gentoo | emerge | Código fuente | Limitado | Portage , overlays externos |
Void Linux | xbps | .xbps | No oficial | Repositorio oficial único |
Comandos básicos por gestor de paquetes
Acción | Debian / Ubuntu | Fedora / RHEL | Arch / Manjaro | Gentoo | Void Linux |
---|---|---|---|---|---|
Actualizar repositorio | sudo apt update | sudo dnf check-update | sudo pacman -Sy | emerge --sync | xbps-install -S |
Instalar paquete | sudo apt install <pkg> | sudo dnf install <pkg> | sudo pacman -S <pkg> | emerge <pkg> | xbps-install <pkg> |
Eliminar paquete | sudo apt remove <pkg> | sudo dnf remove <pkg> | sudo pacman -R <pkg> | emerge -C <pkg> | xbps-remove <pkg> |
Buscar paquete | apt search <pkg> | dnf search <pkg> | pacman -Ss <pkg> | emerge --search <pkg> | xbps-query -Rs <pkg> |
Ver detalles | apt show <pkg> | dnf info <pkg> | pacman -Qi <pkg> | equery list <pkg> | xbps-query -s <pkg> |
Instalar local | dpkg -i <file>.deb | rpm -ivh <file>.rpm | pacman -U <file> | makepkg && emerge local | xbps-install ./pkg.xbps |