web-dev-qa-db-ja.com

実行中のLinuxディストリビューションを特定するにはどうすればよいですか?

私たちのオフィスには、独自のカスタマイズされたLinux OSを実行する新しいハードウェアがいくつかあります。

どのディストリビューションに基づいているかをどのように判断すればよいですか?

76
mrTomahawk

これに非常に近い質問がUnix.Stackexchange [〜#〜] here [〜#〜]Gilesに投稿されました。彼が説明する方法に対するクールな答え。

# cat /proc/version

Linux version 2.6.32-71.el6.x86_64 ([email protected]) (gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Fri May 20 03:51:51 BST 2011  
#uname -a 
 
 Linux system1.doofus.local 2.6.32-71.el6.x86_64#1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/issue

CentOS Linux release 6.0 (Final)
Kernel \r on an \m

cat /proc/config.gzcat /usr/src/linux/config.gzcat /boot/config*

私はいくつかのチェックを行いましたが、これはSUSE以外ではあまり信頼できませんでした。

#zcat /proc/config.gz | grep -i kernel 
 CONFIG_SUSE_KERNEL = y 
#CONFIG_KERNEL_DESKTOP is not set 
 CONFIG_LOCK_KERNEL = y

/etcのリリースファイル( nix.comから

  • Novell SuSE --->/etc/SuSE-release
  • Red Hat --->/etc/redhat-release、/ etc/redhat_version
  • Fedora->/etc/Fedora-release
  • Slackware --->/etc/slackware-release、/ etc/slackware-version
  • 古いDebian --->/etc/debian_release、/ etc/debian_version
  • 新しいDebian --->/etc/os-release
  • Mandrake --->/etc/Mandrake-release
  • 黄色い犬->/etc/yellowdog-release
  • Sun JDS --->/etc/Sun-release
  • Solaris/Sparc --->/etc/release
  • Gentoo --->/etc/gentoo-release

Unix.comリンクには、チェックを自動化するために誰かが書いたbashスクリプトもあります。

あなたが持っているパッケージマネージャーを理解することは良い手がかりです。

rpmyumapt-getzypper +その他多数

ただし、ベンダーが望むものを何でも使用できるので、これは決して完全なものではありません。それは本当にあなたに始める場所を与えるだけです。

#dmesg | less 
 
 Linuxバージョン2.6.32.12-0.7-default(geeko @ buildhost)(gccバージョン4.3.4 [gcc-4_3-branch revision 152973](SUSE Linux))#1 SMP 2010- 05-20 11:14:20 +0200

cat /proc/versionおよびunameとほぼ同じ情報

106
2bc

あなたは使いたいでしょう:

$ cat /etc/*-release

次のような応答が返されます。

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu 11.10"
33
rwc

最初の推測として、lsb_release -aを試してください。例えば。 Arch Linuxシステムでは

LSBバージョン:なし
ディストリビューターID:archlinux
説明:Arch Linux
リリース:ローリング
コードネーム:n/a

ただし、これは失敗する可能性があるため、/etc(おそらく名前が-releaseで終わるファイル内にある可能性があります)を調べなければなりません。また、cat /etc/issueも役立ちます。

18
Renan