如何識別正在運行的 Linux 發行版?

如何識別正在運行的 Linux 發行版?

我們的辦公室有一些新硬件,運行自己定制的 Linux 作業系統。

我如何確定它是基於哪個發行版?

答案1

Unix.Stackexchange 上發布了一個與此非常接近的問題這裡 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 五月 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.gz cat /usr/src/linux/config.gz cat /boot/config*

雖然我做了一些檢查,但除了 SUSE 之外,這不是很可靠。

# zcat /proc/config.gz | grep -i 內核
CONFIG_SUSE_KERNEL=y
# CONFIG_KERNEL_DESKTOP 未設定
CONFIG_LOCK_KERNEL=y

釋放文件在/etc(來自 Unix.com

  • Novell SuSE---> /etc/SuSE-release
  • 紅帽--->/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
  • 曼德拉草--->/etc/mandrake-release
  • 黃狗-->/etc/yellowdog-release
  • Sun JDS--->/etc/sun-release
  • Solaris/Sparc--->/etc/release
  • Gentoo--->/etc/gentoo-release

Unix.com 連結上還有一個 bash 腳本,有人編寫用於自動檢查。

弄清楚你有什麼套件管理器是一個很好的線索。

rpm yum apt-get zypper+更多

但這絕不是萬無一失的,因為供應商可以使用他們想要的任何東西。它實際上只是為您提供了一個起點。

# dmesg |較少的

Linux 版本 2.6.32.12-0.7-default (geeko@buildhost) (gcc 版本 4.3.4 [gcc-4_3-branch 修訂版 152973] (SUSE Linux) ) #1 SMP 2010-05-20 11:14:20 +

cat /proc/version與&幾乎相同的訊息uname

答案2

你會想要使用:

$ cat /etc/*-release

您將得到與此類似的回應:

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

答案3

作為第一個猜測,嘗試一下lsb_release -a。例如在 Arch Linux 系統上它給出

LSB 版本:不適用
發行商 ID:archlinux
描述:Arch Linux
版本:滾動
代號:不適用

但是,這可能會失敗,那麼您將不得不四處尋找/etc(很可能它位於名稱以 結尾的文件內-release)。也cat /etc/issue可能有幫助。

相關內容