さまざまな Linux プラットフォームで使用するシェル スクリプトを作成しています。スクリプトの一部で、いくつかのパッケージがインストールされます。Linux ベンダーとデフォルトのシステム インストール メカニズムを特定するにはどうすればよいですか。たとえば、Debian/Ubuntu には apt-get/apt、Fedora には yum などがあります...
前もって感謝します
さまざまな Linux プラットフォームで使用するシェル スクリプトを作成しています。スクリプトの一部で、いくつかのパッケージがインストールされます。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 を使用して) ソース コードを取得し、ゼロからビルドする方法を提供する方法を確認できます。