J'ai essayé d'installer PyTorch sur mon Linux CentOS 7.3. J'ai téléchargé son package, exécuté cette commande et obtenu cette erreur:
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!
J'ai donc essayé d'installer CMake 3 en utilisant la commande
Sudo yum -y install cmake3
L'installation s'est bien passée, mais le système utilise toujours cmake2.8 par défaut. Si je tape le yum info comnmand, j'obtiens ceci:
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.
Donc, le problème est clair: le système voit toujours cmake2.8 par défaut, et donc Python n'utilise pas cmake3 pour son installation PyTorch. Comment puis-je résoudre ce problème?
Merci
Une fois que vous avez à la fois le cmake
et le cmake3
package installé sur votre machine, vous pouvez utiliser pdate-alternatives pour basculer entre les deux packages.
Utilisez la commande alternatives
pour enregistrer les deux installations:
$ 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
Après ces deux commandes, cmake3
sera invoqué par défaut lorsque vous entrez cmake
à partir d'une invite bash ou lancez un script bash. Les commandes prennent également en charge l'enregistrement de quelques commandes esclaves supplémentaires comme ctest
qui doivent être commutées avec cmake
.
Si vous devez revenir à cmake 2.8 par défaut, exécutez la commande suivante:
$ 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
Si vous ne disposez pas d'un accès root, créez simplement un lien comme celui-ci:
ln -s /usr/bin/cmake3 ~/bin/cmake
Sur Centos, package cmake3
contient un exécutable nommé cmake3
. Comme la plupart des programmes exécutent cmake
, ils ne trouvent pas cmake3.
Comme d'habitude, vous pouvez quelque part créer un lien nommé cmake
qui pointe vers /usr/bin/cmake3
et placez le répertoire vers ce lien dans la variable [~ # ~] path [~ # ~] avant les autres répertoires.