我被分配在服务器上执行一项工作,但不确定 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