Wie lade ich ein RPM-Paket herunter und installiere es in einer Zeile?

18

Ich habe mich gefragt, ob wgetes möglich ist, ein RPM herunterzuladen und es dann sudo rpm -iin einer einzigen Zeile zu installieren. Mir ist klar, dass ich einfach rennen könnte:

wget -c <URL>
sudo rpm -i <PACKAGE-NAME>.rpm

Um das Paket zu installieren, habe ich mich gefragt, ob es möglich sein könnte, dies in einer einzigen Zeile unter Verwendung der stillen und in die Standardausgabeoptionen von wget zu schreiben. Ich habe versucht mit:

wget -cqO- <URL> | sudo rpm -i

aber es kehrte zurück:

rpm: no packages given for install
BH2017
quelle
Hast du es versucht sudo rpm -i <URL>?
Mikel
Hast du es versucht wget -cqO- <URL> | xargs sudo rpm -ioder vielleicht sudo rpm -i $(wget -cqO- <URL>)? Welchen Fehler geben sie?
Firelord
1
@Feuerlord. 1. Befehl: habe es einfach ausprobiert und es gab den hier gezeigten Fehler . 2. Befehl: gab den Fehler rpm: no packages given for install.
BH2017,

Antworten:

29

RPM bietet native Unterstützung für das Herunterladen eines Pakets von einer URL. Du kannst tun:

sudo rpm -i <URL>

Es ist nicht erforderlich, das RPM manuell herunterzuladen. Wenn diese Unterstützung nicht vorhanden wäre, könnten Sie die bashProzessersetzung verwenden.

sudo bash -c 'rpm -i <(wget -O - <URL>)'
Jordanien
quelle
7
Es ist besser, yum install -y <URL> zu verwenden, da dadurch auch alle Abhängigkeiten installiert werden.
Cristi
1
Nun, wenn ich eine Distribution verwenden würde, die yum als Paketmanager verwendet, würde dies aber nicht vergessen, dass RPM-Pakete auch von Distributionen verwendet werden, die APT-RPM-, DNF-, urpmi- und ZYpp-Paketmanager verwenden. Es stellte sich heraus, dass ich openSUSE Tumbleweed verwendet habe, das ZYpp verwendet.
BH2017,
13

Es ist besser, dies zu tun, yum install -y <URL>als sich um Abhängigkeiten zu kümmern, im Gegensatz zum direkten rpmEinsatz von Werkzeugen.

Sorin
quelle
Wie ich in den Kommentaren zu jordanms Antwort sagte, benutzte ich openSUSE Tumbleweed, yum ist bei Tumbleweed nicht verfügbar.
BH2017,
1

Ich schätze, eine Möglichkeit wäre, den Dateinamen für das, was Sie herunterladen, zu definieren:

wget -cqO- <URL> -O my-output-file.rpm && sudo rpm -i my-output-file.rpm

Aber es muss doch bessere Ansätze geben

lese
quelle
Ich werde diese Antwort nicht akzeptieren, da ich (wie Sie sagten) auf bessere Ansätze hoffe, aber Sie wissen, dass dies ein guter Versuch ist, also danke.
BH2017,