Jak mogę poinstruować yum, aby zainstalował określoną wersję pakietu X?


226

Jeśli w repozytorium YUM dostępne są dwie (lub więcej) wersje danego RPM, jak mogę polecić yumzainstalowanie żądanej wersji?

Przeglądając usługę kompilacji Koji, zauważam, że istnieje kilka wersji.

    ss # 1

Odpowiedzi:


310

Aby zobaczyć, jakie poszczególne wersje są dostępne za pośrednictwem yum, możesz użyć --showduplicatesprzełącznika. Daje ci listę taką jak „nazwa pakietu. Wersja architektury”:

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

Jeśli chodzi o instalację konkretnej wersji? Możesz dołączyć informacje o wersji do nazwy pakietu, usuwając nazwę architektury, w następujący sposób:

$ sudo yum install <package name>-<version info>

Na przykład w tym przypadku, jeśli chciałbym zainstalować starszą wersję, 2.4.6-6, zrobiłbym następujące:

$ sudo yum install httpd-2.4.6-6

Możesz także dołączyć informacje o wersji przy określaniu pakietu. W tym przypadku, ponieważ mam do czynienia z Fedorą 20 (F20), informacja o wydaniu to „fc20”, a także informacje o architekturze.

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

repoquery

Jeśli nie masz pewności, czy konstruujesz argumenty, możesz również skonsultować się z nimi repoquery.

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

pobieranie i instalacja

Możesz także skorzystać z jednej z poniższych opcji, aby pobrać określony RPM z Internetu, a następnie użyć go, yumaby go zainstalować.

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

A następnie zainstaluj tak:

$ sudo yum localinstall <path to rpm>

Co jeśli chcę pobrać wszystko, czego wymaga pakiet X?

$ yumdownloader --resolve <package>

Przykład

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

Zauważ, że wykonuje sprawdzenie zależności, a następnie pobiera brakujące elementy. Zobacz moją odpowiedź, która obejmuje go bardziej szczegółowo tutaj: Jak pobrać plik z repozytorium i zainstalować go później bez połączenia z Internetem? .

Bibliografia


1
Nie sądzę, że to działa w przypadku pakietów między najnowszą zlokalizowaną wersją @updatesa początkową wersją dla zlokalizowanego systemu operacyjnego @fedora. Na przykład, jeśli spróbujesz zainstalować httpd-2.4.8-1, yumpowiesz , że pakiet nie jest dostępny.
— Przepełnienie pytania

@QuestionOverflow - nie następuje. Ta wersja nie jest wyświetlana jako dostępna w repozytorium.
— slm

1
Pozwól mi spróbować jeszcze raz z prawdziwym przykładem z mojego mniam dziennika. python-libs-2.7.5-12.fc20.x86_64został kiedyś zainstalowany na moim komputerze, ale od tego czasu został wymieniony. Zakładając, że teraz chcę zainstalować ten konkretny pakiet, yumdownloader python-libs-2.7.5-12*powiedziałbym No Match for argument python-libs-2.7.5-12* Nothing to download. Próbuję powiedzieć, że po przybyciu nowej paczki stary nie będzie już dostępny od yum. Możesz zainstalować tylko najnowszy pakiet lub wersję początkową, ale nie wersje pomiędzy.
— Przepełnienie pytania

2
@QuestionOverflow - W tym scenariuszu myślę, że musisz użyć, yum downgrade ...jeśli pakiet został już zainstalowany i próbujesz wrócić do niego później. W moim QI próbowałem pokazać, w jaki sposób można wybrać konkretną wersję pakietu, który nie został jeszcze zainstalowany. docs.fedoraproject.org/en-US/Fedora/14/html/…
— slm

Nie, to nie działa nawet przy aktualizacji do konkretnego pakietu. Kilka dni temu eksperymentowałem z nową instalacją. Możesz tylko zaktualizować najnowszy pakiet, a nie dowolną żądaną wersję.
— Przepełnienie pytania

6

Inną opcją jest pobranie rpmpliku, a następnie polecenie yumwykonania localinstall:

yum localinstall /path/to/package.rpm

Dobrym miejscem na zdobycie potrzebnych paczek jest rpmfind.com i wyszukiwanie nazwy paczki.


Czy istnieje adres URL zawierający większość, jeśli nie wszystkie wersje plików RPM?
— Przepełnienie pytania

@QuestionOverflow: rpmfind.net
— cuonglm

4
Jest też yum --downloadonly <package>, a następnie yum localinstall <path to package>. Możesz także użyć tego narzędzia yumdownloader <package>.
— slm

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.