Как скачать пакет RPM и установить его в одну строку?


18

Мне было интересно, можно ли с помощью wgetэтого загрузить RPM, а затем передать его, sudo rpm -iчтобы установить в одну строку? Я понимаю, что могу просто бежать:

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

чтобы установить пакет, но мне было интересно, возможно ли сделать это в одной строке, используя тишину и запись в стандартные параметры вывода wget. Я пытался с помощью:

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

но он вернулся:

rpm: no packages given for install

Ты пробовал sudo rpm -i <URL>?
Микель

Вы пробовали wget -cqO- <URL> | xargs sudo rpm -iили возможно sudo rpm -i $(wget -cqO- <URL>)? Какую ошибку они дают?
Повелитель огня

1
@Firelord. 1-я команда: только что попробовал, и он показал ошибку, показанную здесь . 2-я команда: выдала ошибку rpm: no packages given for install.
BH2017

Ответы:


29

RPM имеет встроенную поддержку для загрузки пакета с URL. Ты можешь сделать:

sudo rpm -i <URL>

Нет необходимости загружать RPM вручную. Если эта поддержка не существует, вы можете использовать bashпроцесс подстановки.

sudo bash -c 'rpm -i <(wget -O - <URL>)'

7
Лучше использовать yum install -y <URL>, потому что он также установит все зависимости.
Кристи

1
Хорошо, если бы я использовал дистрибутив, который использует yum в качестве менеджера пакетов, он бы это сделал, но помните, что пакеты RPM также используются дистрибутивами, которые используют менеджеры пакетов APT-RPM, DNF, urpmi и ZYpp. Оказывается, я использовал openSUSE Tumbleweed, который использует ZYpp.
BH2017

13

Лучше сделать так, yum install -y <URL>как это нужно, чтобы позаботиться о зависимостях, а не о прямом rpmиспользовании инструмента.


Как я уже сказал в комментариях к ответу Джорданма, я использовал openSUSE Tumbleweed, yum на Tumbleweed недоступен.
BH2017

1

Я предполагаю, что одним из возможных способов может быть определение имени файла, который вы загружаете:

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

Но наверняка должны быть лучшие подходы


Я не приму этот ответ, так как (как вы сказали) я надеюсь на лучшие подходы, но вы знаете, что это хорошая попытка, так что спасибо.
BH2017
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.