8

我正在编写一个用于各种 linux 平台的 shell 脚本。脚本的一部分安装了几个包。如何确定 linux 供应商和默认系统安装机制,例如 Debian/Ubuntu 有 apt-get/apt,Fedora 有 yum 等等...

提前致谢

4

1 回答 1

17

您实际上不需要检查供应商,因为他们可能决定更改打包系统(不太可能但从概念上讲,您必须确保对于您测试的每个发行版,您尝试正确的包管理器命令)。您所要做的就是测试安装本身:

  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)并从头开始构建的方法。

于 2013-10-22T14:36:32.390 回答