RHEL/RPMベースの展開検出

RHEL/RPMベースの展開検出

RHEL / RPMベースのディストリビューションで実行されていることを検出するスクリプトを作成しようとしています。

dpkg私は2つを同時にインストールするように構成された奇妙なシステムを見つけました。rpmwhich rpm

私はこれを試みます:

if [[ "$(cat /etc/*[_-][rv]e[lr]*)" == (CentOS|Fedora) ]]; then
  #...
fi

ただし、これを行うには、すべてのRHEL / RPMベースのディストリビューションの名前を知る必要があります。

ベストアンサー1

目標がrpmシステムにパッケージマネージャを持っているかどうかを検索することであれば、RPMパッケージデータベースが空でないことは良い経験的な方法です。

if [ -n "$(rpm -qa)" ] 2>/dev/null; then
  echo "This looks like an rpm-based system"
else
  echo "Either there is no rpm command, or the rpm package database has no entries"
fi

おすすめ記事