Bash脚本 - 确定供应商和安装系统(apt-get,yum等)

Dr.*_*che 6 linux bash shell installation

我想在各种Linux平台上使用shell脚本.部分脚本安装了几个pachages.如何确定linux供应商和默认系统安装机制,例如Debian/Ubuntu有apt-get,Fedora yum.

提前致谢

Seb*_*ien 12

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

  YUM_CMD=$(which yum)
  APT_GET_CMD=$(which apt-get)
  OTHER_CMD=$(which <other installer>)
Run Code Online (Sandbox Code Playgroud)

然后可能按您的偏好顺序对它们进行排序:

 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
Run Code Online (Sandbox Code Playgroud)

您可以看看gentoo(或类似于yocto或openembedded的框架)如何提供方法来获取源代码(使用wget)并从头开始构建(如果您需要故障保护脚本).

  • 注意,有可能(在某种程度上使用ported etc版本)在RPM系统上使用`apt-get`,在DEB系统上使用`yum`. (2认同)