Wie installiere ich ein Paket mit yum, ohne die Repository-Informationen zu aktualisieren?

10

Ich möchte einige Pakete aus dem Repository installieren, aber immer, wenn ich versuche, yum install packagenameUpdates zu erstellen.

Loaded plugins: fastestmirror, langpacks, presto, refresh-packagekit
Determining fastest mirrors
updates/metalink                                                                                                                      |  23 kB     00:00     
 * fedora: nl.mirror.eurid.eu
 * rpmfusion-free: ftp.astral.ro
 * rpmfusion-free-updates: ftp.astral.ro
 * rpmfusion-nonfree: ftp.astral.ro
 * rpmfusion-nonfree-updates: ftp.astral.ro
 * updates: nl.mirror.eurid.eu
fedora-awesome                                                                                                                    | 3.3 kB     00:00     
google-chrome                                                                                                                     |  951 B     00:00     
rpmfusion-free-updates                                                                                                        | 3.3 kB     00:00     
rpmfusion-free-updates/primary_db                                                                                             | 272 kB     00:08     
rpmfusion-nonfree-updates                                                                                                     | 3.3 kB     00:00     
rpmfusion-nonfree-updates/primary_db                                                                                          |  93 kB     00:05     
updates                                                                                                                       | 4.7 kB     00:00     
updates/primary_db                                                                                                            | 4.6 MB     02:35     
updates/group                                                                                                                     | 1.9 MB     00:33     

Die Verwendung yum install packagename -Cfunktioniert also auch nicht (Fehler "Cache nicht gefunden" tritt auf und yum makecachegibt auch keine Ergebnisse). Aber ich möchte nur Pakete installieren, ohne db zu aktualisieren.

Clark
quelle
3
Warum? Das Aktualisieren der Datenbank bedeutet, dass Sie die neuesten Versionen der Paketliste haben
Smudge
Über welche Datenbank sprechen wir? Der Yum Repo / Paket Cache?
Thinice
1
@sam, weil meine Internetgeschwindigkeit zu langsam ist, um das Repo für jede Installation zu aktualisieren.
Clark
1
@thinice Ja, wie Sie im Protokoll sehen, erfolgt eine Aktualisierung für jedes Repository. Ich brauche es nicht zu tun, ich möchte nur das Paket installieren, ohne das Repository zu aktualisieren.
Clark
1
@purple Dann sollten Sie ein lokales Repository verwenden. Yum ist so konzipiert, dass es mit vollem Zugriff auf die Repo-Daten funktioniert, sei es remote oder lokal. Yum ist das egal, aber es sollte vorhanden sein.
Smudge

Antworten:

12

Wenn Sie yumsich wie folgt verhalten möchten apt-get(um die Metadaten nicht bei jedem Lauf zu aktualisieren), bearbeiten Sie sie /etc/yum.confund fügen Sie sie dort ein:

metadata_expire=never

oder

metadata_expire=7d

falls Sie die Metadaten nach einer Woche aktualisieren möchten. Wenn Sie ausführen yum makecache, werden Ihre Metadaten wie apt-get updatein Debian aktualisiert .

Beachten Sie jedoch, dass Sie sich manuell darum kümmern müssen, wenn Sie "nie" in der Konfigurationsdatei verwenden. Wenn Sie zB "7d" verwenden, sparen Sie Ihre Datenbandbreite, aber nach einer Woche werden die Metadaten automatisch für Sie aktualisiert.

Hier ist die metadata_expireDokumentation:

Sie können auch von der Standardeinstellung der Verwendung von Sekunden zur Verwendung von Tagen, Stunden oder Minuten wechseln, indem Sie die Anzeige h bzw. m anhängen. Der Standardwert ist 6 Stunden, um yum-updatesd zu ergänzen, das einmal pro Stunde ausgeführt wird. Es ist auch möglich, das Wort "nie" zu verwenden, was bedeutet, dass die Metadaten niemals ablaufen.

Rafael van Horn
quelle
wird auch 2wfunktionieren?
Sebastian Godelet
Nein 2wfunktioniert nicht. Der Standardwert ist 6 Stunden, um yum-updatesd zu ergänzen, das einmal pro Stunde ausgeführt wird. Sie können von der Standardeinstellung der Verwendung von Sekunden zur Verwendung von Tagen, Stunden oder Minuten durch Anhängen wechseln a d, h or m.
Shubham Chaudhary
4

Was Sie fragen, ist in mancher Hinsicht aus dem Geist von yum heraus. Yum ist ein umfassender Paket- und Abhängigkeitsmanager . Um seinen Job zu erledigen und Ihr System nicht durch Mix-and-Matching inkompatibler Pakete zu vermasseln, müssen die Daten vorhanden sein, die Sie nicht aktualisieren möchten.

Sie können manuell analysieren, welche Abhängigkeiten ein Paket aufweist, indem Sie sie verwenden deplist <packagename>und manuell installieren.

Es scheint unter allen Umständen eine seltsame Bitte zu sein, wenn man nicht auf dem neuesten Stand ist ...

dünnes Eis
quelle
Aber warum aktualisiert apt-get das Repository nicht, wenn Sie den Befehl install eingeben? Das Repository wird nur aktualisiert und nur, wenn Sie update eingeben. Ich möchte, dass du das Gleiche tust.
Clark
1
Wenn Sie apt-get install foo ausführen und die Remote-Paketversion geändert wurde, erhalten Sie folgende Meldungen: bitbucket.org/ianb/silverlining/issue/26/… - Ebenso mit Abhängigkeiten, die im Repo aktualisiert wurden auch. (Im Wesentlichen zwingen Sie, Update auszuführen).
Thinice
2
Ja, aber wenn ich yum starte, um eine Anwendung zu installieren, die nicht geändert wurde, wird auch die Datenbank aktualisiert.
Clark
4

Wenn Sie ein Paket installieren möchten, ohne die Datenbank zu aktualisieren, laden Sie die RPM direkt herunter (entweder über Yumdownloader, FTP oder Webbrowser) und installieren sie dann direkt mit der RPM:

rpm -ivh packagename

Ich empfehle Ihnen dies nicht, da es viel mehr Arbeit ist, die Abhängigkeiten aufzuspüren (aus diesem Grund wird yum erstellt) und zukünftige Installationen über yum unterbrochen werden können.

Rilindo
quelle
Ja, aber warum aktualisiert apt-get beispielsweise das Repository nicht, wenn Sie ihm nur sagen, dass er das Paket installieren soll? Und zum Aktualisieren verwenden Sie den Befehl 'apt-get update'.
Clark