Podemos descargar cualquier paquete usando curl
o wget
comandos, ¿verdad? Sin embargo, estos comandos no descargarán las dependencias requeridas. Es posible que deba dedicar un tiempo a buscar y descargar manualmente las dependencias requeridas por el paquete para instalar. ¡Pues ya no! En este breve tutorial, veamos cómo descargar un paquete RPM con todas las dependencias en CentOS. Probé esta guía en CentOS 7, aunque los mismos pasos podrían funcionar en otros sistemas basados en RPM como RHEL, Fedora, AlmaLinux y Rocky Linux.
Descargue un paquete RPM con todas las dependencias en CentOS
Podemos hacer esto en dos métodos. Vamos a utilizar Downloadonly plugin en el primer método.
1. Descargue paquetes RPM con todas las dependencias usando el complemento "Downloadonly"
Podemos descargar fácilmente cualquier paquete RPM con todas las dependencias usando "Downloadonly" complemento para el comando yum.
Para instalar el complemento Downloadonly, ejecute el siguiente comando como root
usuario.
# yum install yum-plugin-downloadonly
Ahora, ejecute el siguiente comando para descargar un paquete RPM.
# yum install --downloadonly <package-name>
De forma predeterminada, este comando descargará y guardará los paquetes en /var/cache/yum/
localización. Sin embargo, puede descargar y guardar los paquetes en cualquier lugar de su elección usando "--downloaddir
" opción.
# yum install --downloadonly --downloaddir=<directory> <package-name>
Ejemplo:
# yum install --downloadonly --downloaddir=/root/mypackages/ httpd
Salida de muestra:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.excellmedia.net * epel: epel.mirror.angkasa.id * extras: centos.excellmedia.net * updates: centos.excellmedia.net Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed --> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.4.8-3.el7 will be installed ---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed ---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed ---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================= Package Arch Version Repository Size ======================================================================================================================================= Installing: httpd x86_64 2.4.6-40.el7.centos.4 updates 2.7 M Installing for dependencies: apr x86_64 1.4.8-3.el7 base 103 k apr-util x86_64 1.5.2-6.el7 base 92 k httpd-tools x86_64 2.4.6-40.el7.centos.4 updates 83 k mailcap noarch 2.1.41-2.el7 base 31 k Transaction Summary ======================================================================================================================================= Install 1 Package (+4 Dependent packages) Total download size: 3.0 M Installed size: 10 M Background downloading packages, then exiting: (1/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:01 (2/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 (3/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:01 (4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:01 (5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:09 --------------------------------------------------------------------------------------------------------------------------------------- Total 331 kB/s | 3.0 MB 00:00:09 exiting because "Download Only" specified
Ahora vaya a la ubicación que especificó en el comando anterior. Verá allí el paquete descargado con todas las dependencias. En mi caso, he descargado los paquetes en /root/mypackages/
directorio.
Verifiquemos el contenido.
# ls /root/mypackages/
Salida de muestra:
apr-1.4.8-3.el7.x86_64.rpm apr-util-1.5.2-6.el7.x86_64.rpm httpd-2.4.6-40.el7.centos.4.x86_64.rpm httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm mailcap-2.1.41-2.el7.noarch.rpm
Como puede ver en el resultado anterior, el paquete httpd
se ha descargado con todas las dependencias.
Tenga en cuenta que este complemento es aplicable para "yum install/yum update" y no para "yum groupinstall". De forma predeterminada, este complemento descargará los últimos paquetes disponibles en el repositorio. Sin embargo, puede descargar una versión particular especificando la versión.
Ejemplo:
# yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7
Además, puede descargar varios paquetes a la vez como se muestra a continuación.
# yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd
Descargar - Guía gratuita:"10 formas sencillas de restaurar su sistema Linux"
2. Descargue paquetes RPM con todas las dependencias usando la utilidad "Yumdownloader"
Yumdownloader es una utilidad de línea de comandos simple pero útil que descarga cualquier paquete RPM junto con todas las dependencias requeridas de una sola vez.
Instale Yumdownloader usando el siguiente comando como root
usuario.
# yum install yum-utils
Una vez instalado, ejecute el siguiente comando para descargar un paquete, por ejemplo httpd
.
# yumdownloader httpd
Para descargar paquetes con todas las dependencias, use --resolve
opción:
# yumdownloader --resolve httpd
De forma predeterminada, Yumdownloader descargará los paquetes en el directorio de trabajo actual.
Para descargar paquetes junto con todas las dependencias a una ubicación específica, use --destdir
opción:
# yumdownloader --resolve --destdir=/root/mypackages/ httpd
O
# yumdownloader --resolve --destdir /root/mypackages/ httpd
Salida de muestra:
Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.excellmedia.net * epel: epel.mirror.angkasa.id * extras: centos.excellmedia.net * updates: centos.excellmedia.net --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed --> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos.4 for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.4.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.4.8-3.el7 will be installed ---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed ---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos.4 will be installed ---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed --> Finished Dependency Resolution (1/5): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00:01 (2/5): mailcap-2.1.41-2.el7.noarch.rpm | 31 kB 00:00:02 (3/5): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:00:02 (4/5): httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm | 83 kB 00:00:03 (5/5): httpd-2.4.6-40.el7.centos.4.x86_64.rpm | 2.7 MB 00:00:19
Verifiquemos si los paquetes se han descargado en la ubicación especificada.
# ls /root/mypackages/
Salida de muestra:
apr-1.4.8-3.el7.x86_64.rpm apr-util-1.5.2-6.el7.x86_64.rpm httpd-2.4.6-40.el7.centos.4.x86_64.rpm httpd-tools-2.4.6-40.el7.centos.4.x86_64.rpm mailcap-2.1.41-2.el7.noarch.rpm
A diferencia del complemento Downloadonly, Yumdownload puede descargar los paquetes relacionados con un grupo en particular.
# yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/
Personalmente, prefiero Yumdownloader sobre el complemento Downloadonly para yum. Pero, ambos son fáciles y hacen el mismo trabajo. Puedes elegir el que más te convenga.
Lectura relacionada:
- Descargar paquetes con dependencias localmente en Ubuntu