我正在检查 Redhat 版本,所以这次我使用了三个不同的命令。两个命令给出了相同的结果,但第三个命令给出了不同的结果。哪一个是对的。
[root@DBtest2 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)
[root@DBtest2 ~]# /usr/bin/lsb_release --d
Description: Red Hat Enterprise Linux Server release 4 (Tikanga)
[root@DBtest2 ~]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel \r on an \m
Run Code Online (Sandbox Code Playgroud)
liv*_*ato 10
我更倾向于redhat-release。您可以使用该rpm -q --whatprovides
命令来确定提供的包的名称/etc/redhat-release
。
[tim@c5 ~]$ rpm -q --whatprovides /etc/redhat-release
centos-release-5-5.el5.centos
Run Code Online (Sandbox Code Playgroud)
如果你不相信,那么你可以查看包的详细信息。注意Version
和Release
。
[tim@c5 ~]$ rpm -qi --whatprovides /etc/redhat-release
Name : centos-release Relocations: (not relocatable)
Version : 5 Vendor: CentOS
Release : 5.el5.centos Build Date: Sun 25 Apr 2010 04:25:31 PM PDT
Install Date: Thu 20 May 2010 04:07:47 PM PDT Build Host: builder10.centos.org
Group : System Environment/Base Source RPM: centos-release-5-5.el5.centos.src.rpm
Size : 35485 License: GPL
Signature : DSA/SHA1, Mon 26 Apr 2010 04:40:57 PM PDT, Key ID a8a447dce8562897
Summary : CentOS release file
Description :
CentOS release files
Run Code Online (Sandbox Code Playgroud)
如果你仍然不相信你所看到的,你可以试试看
[tim@c5 etc]# rpm -qai | grep Release | awk -F' ' '{print $3}' | head -15
23.2.2
24.20060715
1.el5
35.el5
32.2.1.1
4
2.fc6
45.el5.centos
4.el5
1
2.el5
0.1
5.el5
1.el5
15.el5
Run Code Online (Sandbox Code Playgroud)
希望您能在搜索所有包装信息时找到某种模式来回答您的问题。
祝你好运。
更新 #1:
你也可以试试:
[tim@c6 ~]# rpm -q --whatrequires \
$(rpm -ql \
$(rpm -q --whatprovides /etc/redhat-release)
) | grep -v ' '
initscripts-9.03.27-1.el6.centos.x86_64
Run Code Online (Sandbox Code Playgroud)
更新#2:
我想确保我在第一次更新中提供的命令正常工作,所以我在 AWS 上启动了一个 RHEL5 实例。看起来它有效。
[root@ip-10-172-23-67 ~]# rpm -q --whatrequires \
> $(rpm -ql \
> $(rpm -q --whatprovides /etc/redhat-release)
> ) | grep -v ' '
initscripts-8.45.30-3.el5_5.1
Run Code Online (Sandbox Code Playgroud)