Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在Linux CentOS 7上,如何强制系统使用cmake3?_Python 2.7_Cmake_Centos_Centos7_Pytorch - Fatal编程技术网

Python 2.7 在Linux CentOS 7上,如何强制系统使用cmake3?

Python 2.7 在Linux CentOS 7上,如何强制系统使用cmake3?,python-2.7,cmake,centos,centos7,pytorch,Python 2.7,Cmake,Centos,Centos7,Pytorch,我尝试在我的Linux CentOS 7.3上安装。我下载了它的软件包,运行了这个命令,得到了这个错误: sudo python setup.py install running install running build_deps CMake Error at CMakeLists.txt:1 (cmake_minimum_required): CMake 3.0 or higher is required. You are running version 2.8.12.2 --

我尝试在我的Linux CentOS 7.3上安装。我下载了它的软件包,运行了这个命令,得到了这个错误:

sudo python setup.py install

running install
running build_deps
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.0 or higher is required.  You are running version 2.8.12.2


-- Configuring incomplete, errors occurred!
因此,我尝试使用以下命令安装CMake 3

sudo yum -y install cmake3
安装顺利,但系统仍使用cmake2.8作为默认值。 如果键入yum info comnmand,则会得到以下结果:

sudo yum info cmake

Installed Packages
Name        : cmake
Arch        : x86_64
Version     : 2.8.12.2
Release     : 2.el7
Size        : 27 M
Repo        : installed
From repo   : base
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.
因此,问题很明显:系统仍然将cmake2.8视为默认值,因此Python在PyTorch安装中不使用cmake3。 我怎样才能解决这个问题


感谢您在Centos上提供了名为
cmake3
的可执行文件包
cmake3
。因为大多数程序都执行
cmake
,所以它们找不到cmake3


通常,您可以在某处创建一个名为
cmake
的链接,该链接指向
/usr/bin/cmake3
,并将指向该链接的目录放在路径变量中的其他目录之前。

一旦您的计算机上安装了
cmake
cmake3
软件包,您可以使用在两个包之间切换

使用
alternatives
命令注册两个安装:

$ sudo alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake 10 \
--slave /usr/local/bin/ctest ctest /usr/bin/ctest \
--slave /usr/local/bin/cpack cpack /usr/bin/cpack \
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake \
--family cmake

$ sudo alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20 \
--slave /usr/local/bin/ctest ctest /usr/bin/ctest3 \
--slave /usr/local/bin/cpack cpack /usr/bin/cpack3 \
--slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3 \
--family cmake
在这两个命令之后,当您从bash提示符输入
cmake
或启动bash脚本时,默认情况下将调用
cmake3
。这些命令还负责注册一些辅助命令,如
ctest
,这些命令需要与
cmake
一起切换

如果需要切换回cmake 2.8作为默认设置,请运行以下命令:

$ sudo alternatives --config cmake

There are 2 programs which provide 'cmake'.

  Selection    Command
-----------------------------------------------
   1           cmake (/usr/bin/cmake)
*+ 2           cmake (/usr/bin/cmake3)

Enter to keep the current selection[+], or type selection number: 1

如果您没有根访问权限,只需创建如下链接:

ln -s /usr/bin/cmake3 ~/bin/cmake

在某些规范中,例如libzip.spec,它可以工作:

BuildRequires:  cmake3

mkdir ~/bin
export PATH=~/bin:$PATH
ln -s /usr/bin/cmake3 ~/bin/cmake

在Centos 7上安装cmake3后创建此符号链接对我很有用:

sudo ln -s /usr/bin/cmake3 /usr/bin/cmake

谢谢,如何在~/.bashrc文件中执行此操作?
导出路径=:$PATH
可能会起作用。但是您可以通过
sudo
运行
python setup.py install
,因此您应该修改根环境,而不是用户的环境。为了使用cmake3,最好将变量传递给sudo:
sudo PATH=:$PATH python setup.py install
。我刚刚执行了“sudo ln-s/usr/bin/cmake3/usr/bin/cmake”,这是一个处理系统文件的坏主意。当更新cmake包时,它将被覆盖。除此之外,其他期望cmake V.2出现在/usr/bin/cmake中的软件可能并不欣赏它。它不适合我/usr/local/bin/cmake正在呼叫cmake3,但我想/usr/bin/cmake呼叫cmake3。可能吗?您应该确保/usr/local/bin位于路径中的较早位置::/usr/local/bin:/usr/bin在某些规范中,例如libzip.spec,它可以工作:mkdir~/bin导出路径=~/bin:$path ln-s/usr/bin/cmake3~/bin/cmake