确定 Linux 发行版

确定 Linux 发行版

我正在尝试确定正在运行的 Linux 服务器的版本。我不是想确定内核版本,而是确定发行商。

gcc 已安装,并且在版本输出中显示 RedHat

# gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)

这是否意味着我可以放心地假设我的服务器是 RedHat 服务器。有没有更好的 - 100% 可靠的方法来找出这一点?对于其他 Linux 版本也是如此 - 不仅仅是这个服务器?

编辑:以防/etc/万一有帮助 - 但我想要一个适用于其他版本 Linux 的解决方案。

# ls /etc/
./              backupmxhosts  domainusers     host.conf     localdomains  mailips        pam.d/      relayhosts               shadow              trustedmailhosts
../             bashrc*        exim.conf       inputrc       localtime     man.config     passwd      resolv.conf              skipsmtpcheckhosts  userdomains
DIR_COLORS      cron.deny      exim.pl         ld.so.cache   lynx.cfg      mtab           profile     secondarymx              spammeripblocks     vimrc
aliases         demodomains    exim.pl.local*  ld.so.conf    mail/         my.cnf         profile.d/  senderverifybypasshosts  sudoers
antivirus.exim  demouids       group           localaliases  mailhelo      nsswitch.conf  protocols   services                 termcap

我没有*release*version文件/etc/

# ls /etc*release; ls /etc/*version
/bin/ls: /etc/*release: No such file or directory
/bin/ls: /etc/*version: No such file or directory

我尝试过 LSB

# lsb_release -a
LSB Version:
Distributor ID: n/a
Description:    (none)
Release:        n/a
Codename:       n/a

另外 - 我猜我处于一个chroot jail(不太确定那是什么)里面,这可能是导致这个问题的原因。


更新:

我认为这对我来说已经足够了。我想我可以放心地假设我正在使用 cent-os。

# cat /proc/version
Linux version 2.6.9-103.plus.c4smp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Wed Dec 21 16:17:23 EST 2011

答案1

cat /proc/version

例子:

  1. 乌本图:

    $ cat /proc/version
    Linux version 3.11.0-13-generic (buildd@roseapple) (gcc version 4.8.1 \
    (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 07:38:26 UTC 2013
    
  2. 红帽/CentOS:

    $ cat /proc/version
    Linux version 2.6.32-220.13.1.el6.x86_64 ([email protected]) \
    (gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Tue Apr 17 23:56:34 BST 2012
    

也可以看看如何知道您正在使用哪个 Linux 发行版?

答案2

在大多数现代 Linux 发行版中,以下命令将为您提供其信息:

lsb_release -a

答案3

/etc/issue可能是一个很好的起点。

通过检查不同分布的信息文件可以找到更多信息:

Novell SuSE    /etc/SuSE-release
OpenSuSE       /etc/SuSE-release, /etc/os-release
Red Hat,CentOS /etc/redhat-release, /etc/redhat_version
Fedora         /etc/fedora-release, /etc/redhat-release, /etc/os-release
Slackware      /etc/slackware-release, /etc/slackware-version
Debian         /etc/debian_release, /etc/debian_version
Mandrake       /etc/mandrake-release
Yellow dog     /etc/yellowdog-release
Sun JDS        /etc/sun-release 
Solaris/Sparc  /etc/release 
Gentoo         /etc/gentoo-release
Amazon Linux   /etc/system-release
PLD Linux      /etc/pld-release, /etc/os-release
ArchLinux      /etc/arch-release, /etc/os-release

Unix 论坛更多细节。

答案4

cat /etc/issue 可能会回答您的问题。

发行版制作者在这里对你并不友好。首先,每个人都认为这是唯一正确的方法。

最有可能的是,您不应该试图嗅探发行版,而应该更详细地研究您真正需要回答的特定问题。专注于您正在查看的功能,而不是提供该功能的发行版。毕竟,发行版的新版本可以调转方向,在任何特定轴上朝相反的方向发展。

相关内容