Mam dwa pliki:
Dane wyjściowe yum list installed
są teraz zainstalowane yum_install, a yum list updates
teraz jako yum_updates
Potrzebuję w zasadzie połączyć jakoś te dwa pliki, ale TYLKO w oparciu o pakiety, które wymagają aktualizacji. Powiedzmy, że mój plik „yum_installed” zawiera teoretycznie 6 pakietów:
openssh-clients.i386 4.3p2-82.el5 installed
openssh-server.i386 4.3p2-82.el5 installed
openssl.i686 0.9.8e-22.el5_8.4 installed
oprofile.i386 0.9.4-20.el5 installed
orca.i386 1.0.0-5.el5 installed
pam.i386 0.99.6.2-12.el5 installed
Moje yum_updates pozwala powiedzieć, że zawiera tylko te pakiety, ale jeśli zauważysz, tylko openssl musi zostać zaktualizowany, tak aby był to 1 pakiet.
ntp.i386 4.2.2p1-17.el5.centos updates
openldap.i386 2.3.43-28.el5_10 updates
openssl.i686 0.9.8e-27.el5_10.4 updates
pcre.i386 6.6-9.el5 base
perl.i386 4:5.8.8-41.el5 base
pidgin.i386 2.6.6-32.el5 updates
To, co chcę zrobić, to po prostu mieć pakiet w tym przypadku, openssl i NEXT, aktualną, a następnie zaktualizowaną wersję. Mój plik yum_installed jest długi i zawiera pakiety, które nie wymagają aktualizacji. Nie obchodzi mnie to.
WYJŚCIE KOŃCOWE powinno wyglądać tak (linia rozdzielana spacjami jest w porządku, ale tutaj używam potoków do oddzielenia wyniku).
openssl.i686 | 0.9.8e-22.el5_8.4 | 0.9.8e-22.el5_8.4
yum check-update
lubyum list updates
.yum check-update
właśnie tego szukasz.Odpowiedzi:
To jest podejście:
Pętla przechodzi przez
installed
plik i przechowuje parę(package, version)
wa[]
tablicy. Następnie przeglądaupdated
listę i sprawdza:installed
THENpackage
+installed
+update
.źródło
Sprawdź polecenie „dołącz”, które prawdopodobnie robi to, co chcesz.
źródło