Repositorios de software
Un repositorio se define como un lugar (mayormente centralizado) desde donde se almacena, organiza, mantiene y difunde información digital, habitualmente archivos informáticos, que pueden contener trabajos científicos, conjuntos de datos o software.
En la informática tenemos repositorios de software centralizados desde hace mucho, que dependiendo el gestor de paquetes (‘package manager’) que se utilice funcionan de una manera u otra.
Sistemas Linux
Para que se encuentre disponible (funcionalmente) un repositorio debe contener, almenos, tres (3) archivos esenciales:
- La base de datos que contiene el indexado de los programas disponibles y sus versiones.
- La firma de la base de datos que autentica a la misma.
- Los archivos instalables de los programas que el gestor de paquetes se encarga de descargar.
Opcionalmente cada paquete puede estar firmado digitalmente, haciendo que se añada un archivo adicional con la extensión “.sig”.
APT: Advanced Package Tool
Instalado en los sistemas derivados de la distribución Debian (Ubuntu, Mint, Kali, etc) y utiliza paquetes con extensión “.deb”:
Archivo de configuración | Propósito |
---|---|
/etc/apt/sources.list.d/[archivo].sources | Indicador del repositorio de software |
/etc/apt/apt.conf.d/[archivo] | Archivos con configuraciones de que paquetes nunca borrar, cuales actualizar y cuales no, etc |
Comandos;
- Ver ayuda para los subcomandos / argumentos;
apt --help
- Listar paquetes en toda la base de datos del repositorio;
apt list
- Listar paquetes instalados en el sistema operativo / contenedor;
apt list --installed
- Actualizar repositorios sin actualizar paquetes del sistema operativo;
apt update
- Actualizar paquetes del sistema operativo;
apt upgrade
- Actualizar el sistema operativo de forma completa (por ejemplo para pasar de la versión X a X+1 ), instalando, removiendo y actualizando paquetes;
apt full-upgrade
- Buscar un paquete por nombre, por coincidencia de palabra;
apt search [palabra]
- Mostrar detalles de un paquete en concreto;
apt show [nombre_del_paquete]
- Editar el archivo de repositorios (en vez de ir directamente a; /etc/apt/sources.list);
apt edit-sources
- Borrar todos los paquetes que quedaron huérfanos (osea; fueron instalados como dependencias pero ya no son necesarios);
apt autoremove
- Instalar un paquete;
apt install [nombre_del_paquete]
- Reinstalar un paquete;
apt reinstall [nombre_del_paquete]
- Desinstalar un paquete sin remover sus archivos editados (como configuraciones, por ejemplo);
apt remove [nombre_del_paquete]
- Desinstalar un paquete pero eliminando todos sus archivos (editados por el usuario/a o no) con sus dependencias incluidas;
apt purge --autoremove [nombre_del_paquete]
- Buscar un paquete por archivo / directorio que contiene dentro, por coincidencia de palabra;
dpkg -S [palabra]
- Listar las dependencias de un paquete;
apt-cache depends [nombre_del_paquete]
- Listar los paquetes que dependen de un determinado programa;
apt-cache rdepends [nombre_del_programa]
DNF
Instalado en los sistemas derivados de la distribución Fedora (CentOS Stream -> Red Hat Enterprise, Rocky, Alma, etc) y utiliza paquetes con extensión “.rpm”:
Archivo de configuración | Propósito |
---|---|
/etc/yum.repos.d/ | Archivos “.repo” de configuración con los repositorios |
/etc/dnf/dnf.conf | Opciones de configuración de dnf (arquitectura, confirmación al instalar/desinstalar, etc); https://dnf-readthedocs-io.translate.goog/en/latest/conf_ref.html?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es#main-options |
/etc/dnf/dnfX-plugins | Plugins para la versión X de dnf |
/etc/dnf/protected.d/ | Archivos “.conf” con los paquetes que son protegidos y por ende, no pueden ser desinstalados |
Comandos;
- Actualizar repositorios sin actualizar los paquetes;
dnf update
- Actualizar repositorios y paquetes del sistema operativo;
dnf upgrade
- Buscar paquetes en los repositorios;
dnf search [nombre_del_paquete]
- Listar paquetes instalados;
dnf list –installed
- Listar paquetes en todos los repositorios;
dnf list
- Listar paquetes para actualizar;
dnf list –upgrades
- Instalar un paquete;
dnf install [nombre_del_paquete]
- Remover un paquete y archivos de configuración;
dnf remove [nombre_del_paquete]
Portage
Instalado en los sistemas derivados de la distribución Gentoo (Gentoo, Pentoo, Funtoo, Calculate Linux y Chrome OS) y utiliza paquetes que son scripts:
Archivo de configuración | Propósito |
---|---|
/var/db/repos/gentoo | Repositorio con todos los ebuilds de los paquetes |
/etc/portage/make.conf | Contiene los “USE flags” que indican que opciones se deben incluir o no en la compilación de los paquetes y otras configuraciones de la compilación |
/etc/portage/[paquete].use | Contiene los “USE flags” que indican que opciones se deben incluir o no en la compilación de un paquete especifico |
Comandos;
- Actualizar repositorios sin actualizar los paquetes;
emerge --sync
- Actualizar repositorios y paquetes del sistema operativo;
emerge --update --deep @world
- Buscar un paquete por nombre;
emerge --search [nombre_del_paquete]
- Buscar un paquete por nombre y/o descripción;
emerge --searchdesc [nombre_del_paquete]
- Instalar un paquete por nombre;
emerge --ask [repositorio]/[nombre_del_paquete]
- Remover un paquete por nombre;
emerge --deselect [nombre_del_paquete]
- Actualizar el sistema al completo con los nuevos “USE flags” que se hallan declarado en los archivos de configuración;
emerge --update --deep --newuse @world
- Limpiar de paquetes huérfanos al sistema luego de usar nuevos “USE flags” (cuidado por que es muy agresivo);
emerge --pretend --depclean
Pacman
Instalado en los sistemas derivados de la distribución Arch (Manjaro, Artix, Endeavour, etc) y utiliza paquetes con extensión “.tar.zst”:
Archivo de configuración | Propósito |
---|---|
/etc/pacman.conf | Configuración general y especificación de que repositorios usar (nombre especificado entre los []) |
/etc/pacman.d | Archivos con las URLs de los repositorios |
Comandos;
- Actualizar repositorios sin actualizar los paquetes;
pacman -Sy
- Actualizar repositorios y paquetes del sistema operativo;
pacman -Syuq
- Buscar paquetes en los repositorios;
pacman -Ss [nombre_del_paquete]
- Listar paquetes instalados;
pacman -Q
- Listar paquetes instalados con información adicional (dependencias, dependencias reservas, información del paquete, etc);
pacman -Qi
- Listar todos los paquetes en un repositorio
pacman -Sl [repositorio]
- Listar todos los archivos y directorios en un determinado paquete;
pacman -Ql [nombre_del_paquete]
- Remover un paquete;
pacman -R [nombre_del_paquete]
- Remover un paquete, sin dependencias pero incluyendo sus archivos;
pacman -Rn [nombre_del_paquete]
- Remover un paquete, con dependencias y archivos (cuidado por que es muy agresivo este comando);
pacman -Rcns [nombre_del_paquete]
FDroid
Es un repositorio de software abierto para sistemas operativos Android (que son Linux, ya que usan ese kernel).
Tiene la particularidad que hasta podes crear tu propio repositorio si queres.
Archivo a descargar (no esta en la Google Play);
Una vez instalado lo podremos abrir e instalar las aplicaciones open source que necesitemos;
Si necesitamos añadir otro repositorio de software, debemos ir (dentro de FDroid); Ajustes -> Repositorios y con el botón “+” lo indicamos.
También podemos crear nuestro repositorio (por ahora solamente en Linux o Windows/Mac con Python);