我们的办公室有一些新硬件,运行自己定制的 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 +0200
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
可能有帮助。