
RHEL / RPMベースのディストリビューションで実行されていることを検出するスクリプトを作成しようとしています。
dpkg
私は2つを同時にインストールするように構成された奇妙なシステムを見つけました。rpm
which 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
答え2
このファイルには、ローカルオペレーティングシステムが派生した基本リリースを識別する/etc/os-release
このフィールドが含まれています。以下が含まれてID_LIKE=
いることを確認できます。rhel
grep
cat /etc/os-release | grep ID_LIKE= | grep rhel
このファイルに関する追加文書:無料デスクトップ。
答え3
/etc/redhat-release または /etc/fedora-release があることを確認します。
答え4
次の出力を確認できます/proc/version
。
$ cat /proc/version
Linux version 3.14.8-200.fc20.x86_64 ([email protected])
(gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) ) #1 SMP Mon Jun 16 21:57:53 UTC 2014
例:
$ grep -q 'Red Hat' /proc/version && echo "Redhat based distro"
Redhat based distro