Comment télécharger un package RPM et l'installer sur une seule ligne?

18

Je me demandais s'il wgetétait possible de télécharger un RPM puis de le diriger sudo rpm -ipour l'installer, sur une seule ligne? Je réalise que je pourrais simplement courir:

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

pour installer le package, mais je me demandais s'il serait possible de le faire sur une seule ligne en utilisant les options de sortie silencieuses et d'écriture standard de wget. J'ai essayé d'utiliser:

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

mais il est revenu:

rpm: no packages given for install
BH2017
la source
As-tu essayé sudo rpm -i <URL>?
Mikel
Avez-vous essayé wget -cqO- <URL> | xargs sudo rpm -iou peut sudo rpm -i $(wget -cqO- <URL>)- être ? Quelle erreur donnent-ils?
Firelord
1
@Seigneur du feu. 1ère commande: juste fait un essai et il a donné l'erreur montrée ici . 2ème commande: a donné l'erreur rpm: no packages given for install.
BH2017

Réponses:

29

RPM a un support natif pour télécharger un package à partir d'une URL. Tu peux faire:

sudo rpm -i <URL>

Il n'est pas nécessaire de télécharger le RPM manuellement. Si ce support n'existait pas, vous pourriez utiliser bashla substitution de processus de.

sudo bash -c 'rpm -i <(wget -O - <URL>)'
jordanm
la source
7
Il est préférable d'utiliser yum install -y <URL>, car il installera également toutes les dépendances.
cristi
1
Eh bien, si j'utilisais une distribution qui utilise yum comme gestionnaire de packages, ce serait le cas, mais rappelez-vous que les packages RPM sont également utilisés par les distributions qui utilisent les gestionnaires de packages APT-RPM, DNF, urpmi et ZYpp. Il s'avère que j'utilisais openSUSE Tumbleweed, qui utilise ZYpp.
BH2017
13

Mieux vaut le faire yum install -y <URL>car cela prend également en charge les dépendances, par opposition à l' rpmutilisation directe d' outils.

Sorin
la source
Comme je l'ai dit dans les commentaires sur la réponse de jordanm, j'utilisais openSUSE Tumbleweed, yum n'est pas disponible sur Tumbleweed.
BH2017
1

Je suppose qu'une façon possible pourrait être de définir le nom de fichier de ce que vous téléchargez:

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

Mais il doit sûrement y avoir de meilleures approches

lèse
la source
Je n'accepterai pas cette réponse car (comme vous l'avez dit) j'espère de meilleures approches mais, vous savez que c'est une bonne tentative, alors merci.
BH2017