如何下载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>吗?
Mikel

您是否尝试过wget -cqO- <URL> | xargs sudo rpm -i或可能sudo rpm -i $(wget -cqO- <URL>)?他们给什么错误?
Firelord

1
@Firelord。第一条命令:尝试一下,并给出了此处显示的错误。第二个命令:给出了错误rpm: no packages given for install
BH2017

Answers:


29

RPM具有从URL下载包的本机支持。你可以做:

sudo rpm -i <URL>

无需手动下载RPM。如果不存在此支持,则可以使用bash的流程替换。

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

7
最好使用yum install -y <URL>,因为它还会安装所有依赖项。
cristi

1
好吧,如果我使用的发行版使用yum作为其软件包管理器,那么请记住,使用APT-RPM,DNF,urpmi和ZYpp软件包管理器的发行版也使用RPM软件包。原来我使用的是openSUSE Tumbleweed,后者使用的是ZYpp。
BH2017

13

最好这样做,yum install -y <URL>因为这样做确实可以照顾到依赖性,而不是直接rpm使用工具。


正如我在对jordanm答案的评论中所说,我正在使用openSUSE Tumbleweed,Tumbleweed上没有yum。
BH2017年

1

我想一种可能的方式可能是定义所下载内容的文件名:

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

但是肯定有更好的方法


我不会接受这个答案,因为(如您所说)我希望有更好的方法,但是,您知道这是一个很好的尝试,所以谢谢。
BH2017
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.