Oto konkretny przykład z użyciem „httpd” jako pakietu do pobrania i zainstalowania. Ten proces został przetestowany zarówno na CentOS6, jak i CentOS7.
Zainstaluj potrzebne rzeczy i ułóż miejsce na pobrane RPM:
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
Pobierz RPM. Wykorzystuje to sugerowaną tutaj sztuczkę installroot, aby wymusić pełne pobranie wszystkich zależności, ponieważ nic nie jest zainstalowane w tym pustym katalogu głównym. Yum stworzy tam trochę metadanych, ale zamierzamy to wszystko wyrzucić. Zauważ, że dla CentOS7 releasever
będzie to „7”.
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
Tak, to była mała wersja. Powinieneś zobaczyć rozmiar plików do pobrania z pełnym repo!
Wygeneruj metadane potrzebne do przekształcenia naszego nowego stosu RPM w repozytorium YUM i wyczyść rzeczy, których już nie potrzebujemy:
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
Skonfiguruj katalog pobierania jako repozytorium. Zauważ, że dla CentOS7 gpgkey miałby nazwę „7” zamiast „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
Aby sprawdzić brakujące zależności:
# repoclosure --repoid=offline-httpd
Nie zorientowałem się, dlaczego na CentOS7 zgłasza się takie rzeczy, jak libssl.so.10(libssl.so.10)(64bit)
brak, httpd-tools
kiedy openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(dostawca tej biblioteki) jest wyraźnie obecny w katalogu. Mimo to, jeśli zauważysz coś, czego w oczywisty sposób brakuje, może to być dobra szansa, aby wrócić i dodać to przy użyciu tej samej yum install --downloadonly
metody powyżej.
W trybie offline lub po skopiowaniu /var/tmp/httpd
katalogu repo na inny serwer skonfiguruj tam repozytorium:
# 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
Mam nadzieję, że nie będzie brakujących zależności!