Redhat 或 CentOS 发行版本号

Redhat 或 CentOS 发行版本号

第一种方法,也是最容易想到的方法是查看 /etc/issue 和 /etc/redhat-release这两个文件,这两个文件都差不多,都含有发行号, 但这是在文件中,很容易修改,我那个同事觉得这个不太靠谱。

第二种方法是使用命令,在RHEL 5 或 CentOS 5 中有个命令: lsb-release,通过这个命令可以查到,不过在RHEL 6就没这么幸运了,在我的最小化系统中找不到这个命令,而我那个同事偏偏是在CentOS6上获取发行版本号, 看来此路又不通了。

不过有一个线索, 那就是在CentOS自带的Yum源文件中使用了 $releasever , $basearch等这些变量, 奇怪的是这些变量的值是从哪获取的呢?

Google 一下之后,说明Yum变量的说明可以在这里(5.3.3. Using YumVariables)找到,说明如下:

5.3.3. Using Yum Variables

You can use and reference the following built-in variables inyum commands and in all Yum configuration files (that is,/etc/yum.conf and all .repo files in the /etc/yum.repos.d/directory):

$releasever

You can use this variable toreference the release version of Red Hat Enterprise Linux. Yumobtains the value of $releasever from the distroverpkg=value linein the /etc/yum.conf configuration file. If there is no such linein /etc/yum.conf, then yum infers the correct value by deriving theversion number from the redhat-release package.
$arch

You can use this variable to refer to the system’s CPUarchitecture as returned when calling Python’s os.uname() function.Valid values for $arch include: i586, i686 and x86_64.
$basearch

You can use $basearch to reference the base architecture ofthe system. For example, i686 and i586 machines both have a basearchitecture of i386, and AMD64 and Intel64 machines have a basearchitecture of x86_64.
$YUM0-9

These ten variables are each replaced with the value of anyshell environment variables with the same name. If one of thesevariables is referenced (in /etc/yum.conf for example) and a shellenvironment variable with the same name does not exist, then theconfiguration file variable is not replaced.

To define a custom variable or to override the value of anexisting one, create a file with the same name as the variable(without the “$” sign) in the /etc/yum/vars/ directory, and add thedesired value on its first line.

For example, repository descriptions often include theoperating system name. To define a new variable called $osname,create a new file with “Red Hat Enterprise Linux” on the first lineand save it as /etc/yum/vars/osname:

~]# echo “Red Hat Enterprise Linux” >/etc/yum/vars/osname

Instead of “Red Hat Enterprise Linux 6”, you can now use thefollowing in the .repo files:

name=$osname $releasever

文中说到$releasever的定义可以查看 /etc/yum.conf 文件的事distroverpkg=value行,打开 /etc/yum.conf 看一下,默认文件(我的是CentOS 6)内容如下:

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

distroverpkg=centos-release 代表什么? 去哪找 centos-release。找到这里我再一次表示困惑。

不过另一篇文章进行了我的视野: yum的$releasever真是太反动了, 关键内空如下:

在 /etc/yum.repos.d/ 目录下的软件库定义文件中,常常会在 baseurl 的路径中提到$releasever 这个变量,表示当前发行版的大版本号,但大家知道这个变量是在哪设置的吗?我 grep 了整个 etc目录都没找到,还是看了 yum.conf 才知道的,是在 yum.conf 文件里 distroverpkg选项定义的。但这个选项就很有问题:

distroverpkg 和 releasever 名字不同,且看不出什么联系
distroverpkg的值,并不是明文,而是“redhat-release”。不知道大家看到这个会有什么想法,反正我是首先想到了/etc/redhat-release 文件,但我错了。实际上指的是 redhat-release这个RPM包。所谓“distroverpkg=redhat-release”的意思,其实是将 $releasever 设置为redhat-release 这个RPM包的版本号

原来如此。这发行版本号可是藏的够深的。

不过这恰好解决了我的那个同事的问题。在此谢谢 JulyClyde。

呵呵,有时去钻一下某些问题还是很有意思的。

小结:
yum中的$releasever变量是取redhat-release-serverrpm包的属性值(  %{version})。
[root@ldap01 ~]# rpm -q --qf %{version}redhat-release-server;echo
6Server


### 回答1: 你可以通过以下命令来查看 CentOS 的版本信息: ``` cat /etc/centos-release ``` 执行该命令后,终端将显示 CentOS 的版本信息,例如: ``` CentOS Linux release 8.3.2011 ``` ### 回答2: 要查看CentOS的版本,可以使用以下命令: 1. 使用命令cat /etc/redhat-release。 此命令将显示CentOS的版本信息,包括CentOS发行版本号和内核版本号。 2. 使用命令cat /etc/os-release。 此命令将显示CentOS的版本信息,包括版本号、内核版本号和一些其他信息,如ID、NAME、VERSION以及PRETTY_NAME。 3. 使用命令lsb_release -a。 此命令将显示CentOS的版本信息,包括Distributor ID、Description、Release和Codename。 通过执行以上任一命令,您可以轻松地查看CentOS的版本信息,以确认您所使用的操作系统的确切版本。 ### 回答3: 要查看CentOS的版本,可以使用以下命令: ``` cat /etc/redhat-release ``` 使用上述命令,可以读取`/etc/redhat-release`文件的内容,该文件包含了CentOS的版本信息。运行以上命令后,会在终端输出CentOS版本号。例如,输出可能会是`CentOS release 7.9.2009 (Core)`。 如果想要更详细或更精确的版本信息,可以使用以下命令: ``` cat /etc/centos-release ``` 这个命令会显示出CentOS的更详细版本信息,包括补丁级别。例如,输出可能会是`CentOS Linux release 7.9.2009 (Core)`。 除了上述方法,还可以使用`lsb_release`命令查看CentOS版本。如果系统中没有该命令,可以通过安装相关软件包来获取: ``` yum install -y redhat-lsb-core lsb_release -a ``` 运行以上命令后,会显示出CentOS版本号发行版本、描述等详细信息。 以上是通过命令行查看CentOS版本的几种方法,可以根据实际需要选择使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值