8

さまざまな Linux プラットフォームで使用するシェル スクリプトを作成しています。スクリプトの一部で、いくつかのパッケージがインストールされます。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 に答える