我正在编写一个用于各种 linux 平台的 shell 脚本。脚本的一部分安装了几个包。如何确定 linux 供应商和默认系统安装机制,例如 Debian/Ubuntu 有 apt-get/apt,Fedora 有 yum 等等...
提前致谢
我正在编写一个用于各种 linux 平台的 shell 脚本。脚本的一部分安装了几个包。如何确定 linux 供应商和默认系统安装机制,例如 Debian/Ubuntu 有 apt-get/apt,Fedora 有 yum 等等...
提前致谢
您实际上不需要检查供应商,因为他们可能决定更改打包系统(不太可能但从概念上讲,您必须确保对于您测试的每个发行版,您尝试正确的包管理器命令)。您所要做的就是测试安装本身:
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)并从头开始构建的方法。