web-dev-qa-db-ja.com

/ etc / os-releaseの存在に依存できるのはどのLinuxディストリビューションですか?

私は、ほとんど(または理想的にはすべて)の最新のディストリビューションで動作するLinuxディストリビューションの名前とバージョンを判別する方法を見つけようとしています。私が試したディストリビューション(CentOS、Debian)に必要な情報が/etc/os-releaseに含まれていることに気付きましたが、その存在に依存するのはどの程度安全ですか? uname -aなどのコマンドは実際には同じ情報を含んでおらず、lsb_releaseは明らかに存在しません。最小限のCentOS。

/etc/os-releaseに付属しているディストリビューションを正確に見つける簡単な方法はありますか?さらに、/etc/os-releaseにはNAMEVERSIONPRETTY_NAMEフィールドが含まれることが保証されていますか?

17
w128

Systemdを実行しているシステムには/etc/os-releaseが必要です。これは、systemdの一部として 指定 です。 systemdのない一部のシステムにもそれがあるかもしれません(Debian 8 systemdはオプションですが、すべての場合に/etc/os-releaseがインストールされます)。

仕様によると、すべてのフィールドはオプションであり、一部にはデフォルトがあります(NAMEおよびPRETTY_NAMEの「Linux」)。

詳細は /etc/os-releaseのお知らせ をご覧ください。

14
Stephen Kitt