CentOS 7 中可用的 cmake 版本比 CentOS 8 中的更新版本?

Newer version of cmake available in CentOS 7 than in CentOS 8?

我在 2 个虚拟机上安装了 CentOS 7 和 CentOS 8。两者都启用了 epel

CentOS 7:

$ cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

$ yum repolist
...
repo id                                                                                              repo name                                                                                                                          status
base/7/x86_64                                                                                        CentOS-7 - Base                                                                                                                    10070
epel/x86_64                                                                                          Extra Packages for Enterprise Linux 7 - x86_64                                                                                     13445
extras/7/x86_64                                                                                      CentOS-7 - Extras                                                                                                                    413
updates/7/x86_64                                                                                     CentOS-7 - Updates                                                                                                                  1127
repolist: 25055

CentOS 8:

$ cat /etc/redhat-release 
CentOS Linux release 8.2.2004 (Core) 

$ yum repolist
repo id                                                                                           repo name
AppStream                                                                                         CentOS-8 - AppStream
BaseOS                                                                                            CentOS-8 - Base
PowerTools                                                                                        CentOS-8 - PowerTools
epel                                                                                              Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                                                                      Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                                                                            CentOS-8 - Extras

CentOS 7 上,cmake3 可从 epel 存储库获得,并提供 cmake 版本 3.17。

$ yum provides cmake3
...
cmake3-3.17.3-3.el7.x86_64 : Cross-platform make system
Repo        : epel

CentOS 8 上,cmake3 可从 AppStream 存储库获得,并提供 cmake 版本 3.11。

$ yum provides cmake3
...
cmake-3.11.4-7.el8.x86_64 : Cross-platform make system
Repo        : @System
Matched from:
Provide    : cmake3 = 3.11.4-7.el8

我试图禁用除 epel 之外的所有回购协议,但它仍然返回 AppStream 的回购协议(这对我来说似乎违反直觉 - 如果我肯定它应该什么也没有返回是否禁用了所有其他存储库?)

$ yum --disablerepo=* --enablerepo=epel info cmake
Last metadata expiration check: 0:21:06 ago on Fri 11 Sep 2020 09:44:08 AM UTC.
Installed Packages
Name         : cmake
Version      : 3.11.4
Release      : 7.el8
Architecture : x86_64
Size         : 24 M
Source       : cmake-3.11.4-7.el8.src.rpm
Repository   : @System
From repo    : AppStream
Summary      : Cross-platform make system
URL          : http://www.cmake.org
License      : BSD and MIT and zlib
Description  : CMake is used to control the software compilation process using simple
             : platform and compiler independent configuration files. CMake generates
             : native makefiles and workspaces that can be used in the compiler
             : environment of your choice. CMake is quite sophisticated: it is possible
             : to support complex environments requiring system configuration, preprocessor
             : generation, code generation, and template instantiation.

我在 pkgs.org 上进行了搜索,cmake-3.11 似乎确实是 CentOS 8 可用的最新版本。

除了从源代码构建之外,还有其他方法可以在 CentOD 8 上获得更新版本的 cmake 吗?

当您 运行 yum info 时仍会列出 cmake: 3.11.4 版本,因为它 已经安装 ,因此禁用 AppStream 回购成功'影响显示的内容。如果您 想要显示 可用 软件包(基于您启用的 yum 存储库),您可以 运行 改为:

yum --disablerepo=* --enablerepo=epel info cmake --available

如果您想安装最新版本的 CMake(或其他版本),您可以随时从 CMake download page.

下载二进制分发版

下载后,您可以将包解压到您计算机上可以访问的某个位置,例如:

mkdir ~/cmake
tar xvzf ~/Downloads/cmake-3.18.2-Linux-x86_64.tar.gz -C ~/cmake

最后,确保将提取的 bin 目录添加到 PATH 环境变量中,这样您就可以从命令行 运行 cmake 可执行文件。