Mam jeden serwer z łącznością sieciową, gdzie mogę użyć „yum install $ PACKAGE”.
Chcę jakieś polecenie yum, na przykład yum cache-rpms $PACKAGE $DIRECTORY
takie, że wszystkie wymagane pliki RPM zostaną pobrane do $ DIRECTORY, który również będzie miał plik ( Install.sh
) określający kolejność instalowania tych RPM na wielu innych serwerach bez połączenia z siecią.
Install.sh
może nawet być skryptem powłoki, który zachowuje się tak samo jak yum install $PACKAGE
, z tym wyjątkiem, że nie będzie korzystał z sieci, ale będzie tylko używał $DIRECTORY
.
Możliwy?
Szukam ogólnego rozwiązania, w którym dostępne jest yum i RPM, ale dla konkretności: jest na zestawie serwerów CENTOS 6.7.
Odpowiedzi:
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:
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”.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:
Skonfiguruj katalog pobierania jako repozytorium. Zauważ, że dla CentOS7 gpgkey miałby nazwę „7” zamiast „6”:
Aby sprawdzić brakujące zależności:
Nie zorientowałem się, dlaczego na CentOS7 zgłasza się takie rzeczy, jak
libssl.so.10(libssl.so.10)(64bit)
brak,httpd-tools
kiedyopenssl-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 samejyum install --downloadonly
metody powyżej.W trybie offline lub po skopiowaniu
/var/tmp/httpd
katalogu repo na inny serwer skonfiguruj tam repozytorium:Mam nadzieję, że nie będzie brakujących zależności!
źródło
Wygląda na to, że pytasz o
yumdownloader
to, co jest zawarte w pakiecieyum-utils
. Jest już kilka pytań i odpowiedzi na ten temat, patrz np. Pobierz wszystkie zależności za pomocą yumdownloadera, nawet jeśli jest już zainstalowany? lub Jak znaleźć adresy URL pakietów za pomocą Yum?yumdownloader
pobierze pakiety, chociaż nie wygeneruje pliku,Install.sh
ponieważ kolejność może być ustalona przez yum, więc możesz zainstalować pakiety na polu docelowym za pośrednictwemyum install ./*rpm
folderu z pobranymi pakietami (który musi zawierać wszystkie zależności w porównaniu do instalacja podstawowa - patrz pierwszy link powyżej dotyczącyrepotrack
)źródło
Potrzebowałem go kilka razy, więc zautomatyzowałem odpowiedź @Steve Bonds. Tylko upewnij się, że zdefiniuj
PKG
jako pakiet do zainstalowania na obu komputerach (Oświadczenie: dla CentOS 7. W przypadku CentOS 6, zmień--releasever
iCentOS-7
spot.maszyna online
na komputerze offline:
źródło
-y
do ostatniego polecenia, aby potwierdzić instalację pakietów po uruchomieniu w tle.