web-dev-qa-db-ja.com

Linux CentOS 7上のCMakeで、システムにcmake3を強制的に使用させる方法は?

Linux CentOS 7.3に PyTorch をインストールしようとしました。パッケージをダウンロードし、このコマンドを実行してこのエラーが発生しました。

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コマンドを入力すると、次のようになります。

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を使用しません。この問題を解決するにはどうすればよいですか?

ありがとう

8
DavideChicco.it

cmakecmake3パッケージがマシンにインストールされている場合、 pdate-alternatives を使用して両方のパッケージを切り替えることができます。

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

これらの2つのコマンドの後、cmake3は、bashプロンプトからcmakeを入力するか、bashスクリプトを開始すると、デフォルトで呼び出されます。これらのコマンドは、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
28
sakra

ルートアクセス権がない場合は、次のようなリンクを作成します。

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

Centosでは、パッケージcmake3含む という名前の実行可能ファイルcmake3。ほとんどのプログラムはcmakeを実行するため、cmake3は見つかりません。

通常通り、cmakeという名前のリンクを作成して、/usr/bin/cmake3そして、このリンクへのディレクトリを[〜#〜] path [〜#〜]変数で他のディレクトリの前に置きます。

0
Tsyvarev