Ecco un esempio specifico usando "httpd" come pacchetto da scaricare e installare. Questo processo è stato testato su CentOS6 e CentOS7.
Installa le cose che ti servono e crea un posto dove mettere gli RPM scaricati:
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
Scarica gli RPM. Questo utilizza il trucco di installazione suggerito qui per forzare un download completo di tutte le dipendenze poiché non è installato nulla in quella radice vuota. Yum creerà alcuni metadati lì dentro, ma butteremo via tutto. Si noti che per CentOS7 releasever
sarebbe "7".
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
Sì, quella era la versione piccola. Avresti dovuto vedere la dimensione dei download full-repo!
Genera i metadati necessari per trasformare la nostra nuova pila di RPM in un repository YUM e ripulire le cose di cui non abbiamo più bisogno:
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
Configurare la directory di download come repository. Nota che per CentOS7 il gpgkey sarebbe chiamato "7" invece di "6":
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Per verificare le dipendenze mancanti:
# repoclosure --repoid=offline-httpd
Non ho capito perché su CentOS7 questo riporti cose come libssl.so.10(libssl.so.10)(64bit)
mancare da httpd-tools
quando openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(il fornitore di quella libreria) è chiaramente presente nella directory. Tuttavia, se vedi qualcosa che ovviamente manca, questa potrebbe essere una buona possibilità per tornare indietro e aggiungerlo usando lo stesso yum install --downloadonly
metodo sopra.
Quando si è offline o dopo aver copiato la /var/tmp/httpd
directory repo sull'altro server, impostare il repository lì:
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
# yum --disablerepo=\* --enablerepo=offline-httpd install httpd
Eventualmente nessuna dipendenza mancante!