我想知道是否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
答案1
RPM 原生支持通过 URL 下载软件包。你可以这样做:
sudo rpm -i <URL>
无需手动下载 RPM。如果不存在此支持,您可以使用bash
的进程替换。
sudo bash -c 'rpm -i <(wget -O - <URL>)'
答案2
最好这样做yum install -y <URL>
,因为这确实可以处理依赖关系,而不是直接rpm
使用工具。
答案3
我想一种可能的方法是定义您正在下载的文件名:
wget -cqO- <URL> -O my-output-file.rpm && sudo rpm -i my-output-file.rpm
但肯定有更好的方法
答案4
当你想安装时,还有另一种方法,rpm
因为dnf
不会让你做坏事(比如 use --nodeps
):
rpm -i --nodeps $(dnf download --quiet --url somepackage-version-1 )
你可能还需要做dnf install -y 'dnf-command(download)'