ディストリビューションに応じて異なるコードを実行するスクリプトを書いています。具体的には、これは新しいマシンをセットアップするためのスクリプトで、kubuntu backports リポジトリ (および kubuntu-restricted-extras のインストールなど、他のいくつかのもの) を追加したいのですが、そのマシンが kubuntu を実行している場合のみです。
これを行う方法はいくつか見たことがありますが、Ubuntu ベースのさまざまなディストリビューションを区別できるほど具体的ではないようです。たとえば、次のようになります。
lsb_release -a
uname -a
たとえ私がKubuntuを使っていてもUbuntuが表示されますecho $DESKTOP_SESSION
プラズマが表示され、env | grep XDG_CURRENT_DESKTOP
KDEが表示されますが、これではKubuntuとKDE neonを区別できないと思います。
私が見つけた唯一の有効な方法は次のとおりです:
if env | grep -q kubuntu
then
echo "running kubuntu"
fi
ただし、これは特定の設定ディレクトリの存在に依存しているようで、リリース間で安定したままであるかどうかはわかりません。これを行うより正しい方法はありますか?
詳細
- このスクリプトは、Ubuntuの何らかのバージョンを実行しているマシンでのみ実行されます。
- 私が区別する必要がある主要な分布はウブントゥ、クブンツ、KDE ネオン、 そしてポップ!_os私の主な混乱は、2つのディストリビューションがKDEを実行し、2つがGNOMEを実行しているという事実から生じており、DEをチェックすることができない。
- この情報を取得するためにソフトウェアをインストールするのは構いませんが、そのディストリビューションの標準/デフォルトのリポジトリの一部である場合に限ります。たとえば、
neofetch
は問題ありませんが、時々間違った名前を報告する