我想在各种Linux平台上使用shell脚本。部分脚本安装了几个pachages。如何确定linux供应商和默认系统安装机制,例如Debian / Ubuntu有apt-get,Fedora yum。
提前致谢
答案 0 :(得分:10)
您并不需要检查供应商,因为他们可能决定更改包装系统(不太可能,但从概念上讲,您必须确保为您测试的每个发行版,您尝试正确包管理器命令)。您所要做的就是测试安装本身:
YUM_CMD=$(which yum)
APT_GET_CMD=$(which apt-get)
OTHER_CMD=$(which <other installer>)
然后可能按照您的偏好顺序对它们进行排序:
if [[ ! -z $YUM_CMD ]]; then
yum install $YUM_PACKAGE_NAME
elif [[ ! -z $APT_GET_CMD ]]; then
apt-get $DEB_PACKAGE_NAME
elif [[ ! -z $OTHER_CMD ]]; then
$OTHER_CMD <proper arguments>
else
echo "error can't install package $PACKAGE"
exit 1;
fi
你可以看看gentoo(或类似于yocto或openembedded的框架)如何提供获取源代码(使用wget)的方法,如果你想要一个故障保护脚本,可以从头开始构建。