似乎如果已经安装了某个软件包,“yum install”将尝试将其更新到最新版本。如果最新版本缺少依赖项,这将导致“yum install”失败。我知道我可以使用 抑制此行为--skip-broken
,但我不想在尚未安装的软件包的情况下“跳过损坏的”;在那种情况下我希望它失败。
我见过在这个答案如果我只安装一个包,我可以使用“if”语句来执行此操作,但我有一个包含大约 15 个包的“yum install”语句,并且不想运行yum
多次(每个包一次),因为这样增加了很多开销。
yum
如果软件包尚不存在,我怎样才能只安装它们?
答案1
最后我yum-install-if-missing.sh
根据其他答案写了一个简单的bash脚本。不确定是否有更简单的方法。
#!/bin/bash
yumcmd="yum install -y"
for var in "$@"
do
if ! rpm --quiet --query $var; then
yumcmd="$yumcmd $var"
fi
done
echo "ABOUT TO EXECUTE: $yumcmd"
eval $yumcmd
然后它可以被执行为:yum-install-if-missing.sh packageone packagetwo
等等。