私は、ほとんど(または理想的にはすべて)の最新のディストリビューションで動作するLinuxディストリビューションの名前とバージョンを判別する方法を見つけようとしています。私が試したディストリビューション(CentOS、Debian)に必要な情報が/etc/os-release
に含まれていることに気付きましたが、その存在に依存するのはどの程度安全ですか? uname -a
などのコマンドは実際には同じ情報を含んでおらず、lsb_release
は明らかに存在しません。最小限のCentOS。
/etc/os-release
に付属しているディストリビューションを正確に見つける簡単な方法はありますか?さらに、/etc/os-release
にはNAME
、VERSION
、PRETTY_NAME
フィールドが含まれることが保証されていますか?
Systemdを実行しているシステムには/etc/os-release
が必要です。これは、systemdの一部として 指定 です。 systemdのない一部のシステムにもそれがあるかもしれません(例Debian 8 systemdはオプションですが、すべての場合に/etc/os-release
がインストールされます)。
仕様によると、すべてのフィールドはオプションであり、一部にはデフォルトがあります(NAME
およびPRETTY_NAME
の「Linux」)。
詳細は /etc/os-release
のお知らせ をご覧ください。