我如何才能知道我正在运行哪个发行版?

我如何才能知道我正在运行哪个发行版?

我被分配在服务器上执行一项工作,但不确定 dist 正在运行什么。/proc/version告诉我:

Linux version 2.6.18-194.26.1.el5.028stab079.2 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Fri Dec 17 19:25:15 MSK 2010

这让我想到了 Red Hat Enterprise Linux 5,但当我尝试安装一些软件包时,发现安装了 aptitude 和 apt-get,而不是 yum。我以为 aptitude 和 apt-get 属于 debian 世界。所以现在我想知道,这台服务器上运行的是什么发行版?

答案1

Linux 发行版在目录 /etc 中保存一个发布文件。不幸的是,并非所有发行版都一样,因此最简单的方法是运行

 ls -d /etc/* | grep release 

例如,在我的 Arch Linux 系统上,这会产生以下输出:

 # ls -d /etc/* | grep release
 /etc/arch-release
 /etc/os-release

arch-releade 文件是空的,但 os-release 有相关信息。在 Kubuntu 上,

 # ls -d /etc/* | grep release
 /etc/lsb-release
 /etc/os-release

此处 lsb-release 有相关信息。另一种可能性是运行

 ls -d /etc/* | grep version

这将携带同等的信息,如果发布文件丢失。

编辑:

刚刚意识到可以通过更简洁的方式获取相同的信息

  cat /etc/*{release,version}

答案2

您可以lsb_release -a使用打印分发特定信息。使用该命令您不需要亲自找出包含该信息的相应文件。

以下是一个示例输出Debian 杰西系统:

$ lsb_release -a
LSB Version:    core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
Distributor ID: Debian
Description:    Debian GNU/Linux testing (jessie)
Release:        testing
Codename:       jessie

这里是红帽系统:

$ lsb_release -a
LSB Version:    :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: RedHatEnterpriseClient
Description:    Red Hat Enterprise Linux Client release 5.3 (Tikanga)
Release:        5.3
Codename:       Tikanga

答案3

除了其他答案已经提到的 /etc/*release 之外,/etc/issue 也可以是一个很好的指针,所以尝试cat /etc/issue

至于 apt:这是标准的 Debian 包管理器,您会经常在 Debian/Debianbased 发行版中找到它,但在不同的发行版(即 RHEL)上使用/安装它也没有问题。

同样,如果您愿意,在 Debian 或 Ubuntu 上使用 RPM 也没有问题。当然,同时使用不同的包管理器很容易引起混淆。

答案4

试试这个。它将显示发行版

cat /etc/*release

相关内容