Wie kann ich yum anweisen, eine bestimmte Version von Paket X zu installieren?

226

Wie kann ich anweisen yum, die gewünschte Version zu installieren, wenn in einem YUM-Repository zwei (oder mehr) Versionen eines bestimmten RPM verfügbar sind ?

Beim Durchsehen des Koji-Build-Service stelle ich fest, dass es mehrere Versionen gibt.

    ss # 1

slm
quelle

Antworten:

310

Mit yumdem --showduplicatesSchalter können Sie feststellen, welche Versionen für Sie verfügbar sind . Es gibt Ihnen eine Liste wie "Paketname.Architekturversion":

$ 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

Was die Installation einer bestimmten Version angeht? Sie können die Versionsinformationen an den Namen des Pakets anhängen und den Architekturnamen wie folgt entfernen:

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

Wenn ich zum Beispiel in diesem Fall die ältere Version 2.4.6-6 installieren wollte, würde ich Folgendes tun:

$ sudo yum install httpd-2.4.6-6

Sie können die Release-Informationen auch bei der Angabe eines Pakets angeben. In diesem Fall wäre die Release-Information "fc20", da ich mich mit Fedora 20 (F20) befasse, und die Architektur-Information auch.

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

Repoquery

Wenn Sie sich nicht sicher sind, ob Sie die richtigen Argumente konstruieren, können Sie sich auch an uns wenden 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

Herunterladen und Installieren

Sie können auch eine der folgenden Optionen verwenden, um ein bestimmtes RPM aus dem Internet herunterzuladen und anschließend yumzu installieren.

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

Und dann installiere es so:

$ sudo yum localinstall <path to rpm>

Was ist, wenn ich alles herunterladen möchte, was Paket X benötigt?

$ yumdownloader --resolve <package>

Beispiel

$ 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

Beachten Sie, dass eine Abhängigkeitsprüfung durchgeführt wird und dann die fehlenden Teile heruntergeladen werden. Weitere Informationen zu meiner Antwort finden Sie hier: Wie lade ich eine Datei von repo herunter und installiere sie später ohne Internetverbindung? .

Verweise

slm
quelle
1
Ich denke nicht, dass es für Pakete zwischen der neuesten Version @updatesund der ersten Version für das Betriebssystem funktioniert @fedora. Wenn Sie beispielsweise versuchen zu installieren httpd-2.4.8-1, yumwürde dies bedeuten , dass das Paket nicht verfügbar ist.
Frage Overflow
@QuestionOverflow - folgt nicht. Diese Version wird im Repo nicht als verfügbar angezeigt.
SLM
1
Lassen Sie mich es noch einmal mit einem Beispiel aus meinem Yum-Log versuchen. python-libs-2.7.5-12.fc20.x86_64wurde einmal auf meinem Computer installiert, wurde aber seitdem ersetzt. Angenommen, ich möchte jetzt dieses spezielle Paket installieren, yumdownloader python-libs-2.7.5-12*würde sagen No Match for argument python-libs-2.7.5-12* Nothing to download. Ich versuche zu sagen, dass sobald ein neues Paket ankommt, das alte nicht mehr von yum zugänglich sein würde. Sie können nur das neueste Paket oder die ursprüngliche Version installieren, jedoch keine dazwischen liegenden Versionen.
Fragenüberlauf
2
@QuestionOverflow - In diesem Szenario müssen Sie meines Erachtens verwenden, yum downgrade ...wenn das Paket bereits installiert war und Sie später versuchen, dorthin zurückzukehren. In meinem QI habe ich versucht zu zeigen, wie man eine bestimmte Version eines Pakets auswählen kann, das noch nicht installiert wurde. docs.fedoraproject.org/en-US/Fedora/14/html/…
slm
Nein, es funktioniert nicht einmal beim Upgrade auf ein bestimmtes Paket. Ich habe dies vor ein paar Tagen mit einer neuen Installation experimentiert. Sie können nur auf das neueste Paket updaten und nicht auf eine von Ihnen gewünschte Version.
Fragenüberlauf
6

Eine weitere Option, die Sie herunterladen können rpm, ist die Anweisung yum, Folgendes auszuführen localinstall:

yum localinstall /path/to/package.rpm

Ein guter Ort, um die Pakete zu erhalten, die Sie benötigen, ist rpmfind.com und suchen Sie den Paketnamen.

cuonglm
quelle
Gibt es eine URL, die die meisten, wenn nicht alle Versionen der rpm-Dateien enthält?
Frage Überlauf
@QuestionOverflow: rpmfind.net
cuonglm
4
Es gibt auch yum --downloadonly <package>, gefolgt von yum localinstall <path to package>auch. Sie können das Dienstprogramm yumdownloader <package>auch verwenden.
SLM
0

Sie können auch den Befehl option verwenden:

yum install --nogpgcheck pckg-name-version   
Guillermo Castellon
quelle