yum安装了旧版本的cmake


9

出于某种原因,当我运行yumcmake时,它将安装旧版本。可能是因为我的回购清单不完整吗?我在CentOS 6上使用非网络安装CD上的最小桌面安装。有人可以给我回购链接或其他东西吗?

科学Linux上也会发生同样的事情。

我将自己编译作为最后的选择,因为我试图yum install cmake在bash脚本中进行工作。


查看您在中的yum配置/etc/yum.repos.d/*;那里有什么东西可以锁定已安装的版本。
DopeGhoti 2014年

我不这么认为,一切看起来都很正常,并且是默认设置,这是全新安装。
多米尼克2014年

软件包所在的存储库是否实际设置为enabled=1
DopeGhoti 2014年

1
您如何确定包装已过期?您的发行版中的存储库中是否可能仅包含较旧的版本?
2014年

我最近不得不在更新的基于Debian GNU / Linux的操作系统中进行一些OpenCV构建。预编译的可用CMake太旧而无法构建OpenCV,但是下载并构建CMake很好地解决了这个问题。
1754年

Answers:


7

您没有说,但是您将获得什么版本以及期望什么版本?

我有什么仓库?

您可以使用以下命令找出系统配置为查询哪些存储库:

$ yum repolist | expand
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: centos.mirror.constant.com
 * epel: mirror.steadfast.net
 * extras: mirror.symnds.com
 * updates: bay.uchicago.edu
77 packages excluded due to repository priority protections
repo id         repo name                                               status
base            CentOS-6 - Base                                         6,297+70
epel            Extra Packages for Enterprise Linux 6 - x86_64            10,246
extras          CentOS-6 - Extras                                            7+7
updates         CentOS-6 - Updates                                           314
repolist: 16,864

套餐信息

您可以使用来查询任何软件包是否已安装yum info <pkg>

$ yum info cmake
Loaded plugins: fastestmirror, priorities, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: centos.mirror.constant.com
 * epel: mirror.steadfast.net
 * extras: mirror.symnds.com
 * updates: bay.uchicago.edu
77 packages excluded due to repository priority protections
Installed Packages
Name        : cmake
Arch        : x86_64
Version     : 2.6.4
Release     : 5.el6
Size        : 18 M
Repo        : installed
From repo   : base
Summary     : Cross-platform make system
URL         : http://www.cmake.org
License     : BSD
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, pre-processor
            : generation, code generation, and template instantiation.

包裹的URL

您可以使用以下repoquery命令查找将RPM下载到何处。

$ repoquery --location cmake
http://centos.mirrors.hoobly.com/6.5/os/x86_64/Packages/cmake-2.6.4-5.el6.x86_64.rpm

这是该存储库的一部分:

$ repoquery -i cmake | grep Repos
Repository  : base

因此,这是提供此软件包的CentOS发行版的基本存储库。

还有哪些其他存储库?

您可以使用pkgs.org查询哪些存储库包含特定软件包(至少大多数主要存储库)。

根据此列表,EPEL存储库已预先构建了最新版本。该软件包的版本如下:cmake 28-2.8.11.2-1。


我发现它ATrpms Testing repository具有我需要的版本。我安装了它,并使用该存储库来获取最新版本,谢谢。
多米尼克2014年

@Dominique-太好了,很高兴您解决了您的问题!
slm

谢谢您的解决方案!再次感谢您提供有关yum / repo mgmt命令的其他信息。
2014年

@jRadd-非常欢迎!
slm

6

我在CentOS 6.5上需要cmake 2.8,但是我尝试使用yum也会使cmake始终保持在2.6,即使我尝试添加似乎包含正确版本的存储库。这有点hacky,但是我可以通过以root用户身份执行以下命令来获得所需的内容:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6.8.noarch.rpm
yum install cmake28
cd /usr/bin
mv cmake cmake26
mv ccmake ccmake26
mv cpack cpack26
mv ctest ctest26
ln -s cmake28 cmake
ln -s ccmake28 ccmake
ln -s cpack28 cpack
ln -s ctest28 ctest
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.