我正在尝试确定正在运行的 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
例子:
乌本图:
$ 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
红帽/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
答案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 可能会回答您的问题。
发行版制作者在这里对你并不友好。首先,每个人都认为这是唯一正确的方法。
最有可能的是,您不应该试图嗅探发行版,而应该更详细地研究您真正需要回答的特定问题。专注于您正在查看的功能,而不是提供该功能的发行版。毕竟,发行版的新版本可以调转方向,在任何特定轴上朝相反的方向发展。