Possiamo scaricare qualsiasi pacchetto utilizzando curl
o wget
comandi, giusto? Tuttavia, questi comandi non scaricheranno le dipendenze richieste. Potrebbe essere necessario dedicare del tempo alla ricerca e al download manuale delle dipendenze richieste dal pacchetto da installare. Bene, non più! In questo breve tutorial, vediamo come scaricare un pacchetto RPM con tutte le dipendenze in CentOS. Ho testato questa guida su CentOS 7, anche se gli stessi passaggi potrebbero funzionare su altri sistemi basati su RPM come RHEL, Fedora, AlmaLinux e Rocky Linux.
Scarica un pacchetto RPM con tutte le dipendenze in CentOS
Possiamo farlo in due metodi. Utilizzeremo Solo download plug-in nel primo metodo.
1. Scarica i pacchetti RPM con tutte le dipendenze utilizzando il plug-in "Downloadonly"
Possiamo scaricare facilmente qualsiasi pacchetto RPM con tutte le dipendenze utilizzando "Solo download" plugin per il comando yum.
Per installare il plug-in Downloadonly, esegui il seguente comando come root
utente.
# yum install yum-plugin-downloadonly
Ora, esegui il seguente comando per scaricare un pacchetto RPM.
# yum install --downloadonly <package-name>
Per impostazione predefinita, questo comando scaricherà e salverà i pacchetti in /var/cache/yum/
Posizione. Tuttavia, puoi scaricare e salvare i pacchetti in qualsiasi posizione di tua scelta utilizzando "--downloaddir
" opzione.
# yum install --downloadonly --downloaddir=<directory> <package-name>
Esempio:
# yum install --downloadonly --downloaddir=/root/mypackages/ httpd
Risultato di esempio:
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

Ora vai nella posizione che hai specificato nel comando precedente. Vedrai lì il pacchetto scaricato con tutte le dipendenze. Nel mio caso, ho scaricato i pacchetti in /root/mypackages/
directory.
Verifichiamo i contenuti.
# ls /root/mypackages/
Risultato di esempio:
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

Come puoi vedere nell'output sopra, il pacchetto httpd
è stato scaricato con tutte le dipendenze.
Tieni presente che questo plugin è applicabile per "yum install/yum update" e non per "yum groupinstall". Per impostazione predefinita, questo plugin scaricherà gli ultimi pacchetti disponibili nel repository. Puoi comunque scaricare una versione particolare specificando la versione.
Esempio:
# yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7
Inoltre, puoi scaricare più pacchetti contemporaneamente come mostrato di seguito.
# yum install --downloadonly --downloaddir=/root/mypackages/ httpd vsftpd
Scarica - Guida gratuita:"10 semplici modi per ripristinare il tuo sistema Linux"
2. Scarica i pacchetti RPM con tutte le dipendenze usando l'utilità "Yumdownloader"
Yumdownloader è un'utilità da riga di comando semplice ma utile che scarica qualsiasi pacchetto RPM insieme a tutte le dipendenze richieste in una volta sola.
Installa Yumdownloader usando il seguente comando come root
utente.
# yum install yum-utils
Una volta installato, esegui il comando seguente per scaricare un pacchetto, ad esempio httpd
.
# yumdownloader httpd
Per scaricare i pacchetti con tutte le dipendenze, usa --resolve
opzione:
# yumdownloader --resolve httpd
Per impostazione predefinita, Yumdownloader scaricherà i pacchetti nella directory di lavoro corrente.
Per scaricare i pacchetti insieme a tutte le dipendenze in una posizione specifica, usa --destdir
opzione:
# yumdownloader --resolve --destdir=/root/mypackages/ httpd
Oppure
# yumdownloader --resolve --destdir /root/mypackages/ httpd
Risultato di esempio:
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

Verifichiamo se i pacchetti sono stati scaricati nella posizione specificata.
# ls /root/mypackages/
Risultato di esempio:
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 differenza del plug-in Downloadonly, Yumdownload può scaricare i pacchetti relativi a un particolare gruppo.
# yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/
Personalmente, preferisco Yumdownloader al plugin Downloadonly per yum. Ma entrambi sono facili e fanno lo stesso lavoro. Puoi sceglierne uno che fa per te.
Lettura correlata:
- Scarica i pacchetti con dipendenze in locale in Ubuntu