Gromacsをインストールする際にCMake 2.8が必要になったのでyumでインストールを試みましたが、Scientific Linux 6.3のリポジトリが古いのか、最新バージョンといわれてしまいました。
Package cmake-2.6.4-5.el6.x86_64 already installed and latest version
そこで、CMake 2.8をソースからコンパイルしてインストールします。
ダウンロード:Download | CMake
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar xzvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
bootstrapの実行時に、エラーが出た。
CMake Error at CMakeLists.txt:266 (message): CMAKE_USE_SYSTEM_ZLIB is ON but a zlib is not found! Call Stack (most recent call first): CMakeLists.txt:514 (CMAKE_BUILD_UTILITIES) -- Configuring incomplete, errors occurred!
何もエラーが出なければmake&&make installで終わる。
make make install
また、--system-libsの代わりに--no-system-libsを使えば依存ライブラリを使わずに内部実装のライブラリを使用するらしいので簡単になるようです。ここでは一応、正統のやり方をやってみます。
ZLIBが見つからないということですので、インストールして再びbootstrapを実行する。
yum install zlib zlib-devel ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
またエラー。
-- Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR) CMake Error at CMakeLists.txt:283 (message): CMAKE_USE_SYSTEM_CURL is ON but a curl is not found! Call Stack (most recent call first): CMakeLists.txt:514 (CMAKE_BUILD_UTILITIES) -- Configuring incomplete, errors occurred!
こんどはCURLが見つからないということなので、インストールして再びbootstrapを実行する。
yum install curl curl-devel ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
3回目のエラー。まだくじけない。
-- Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR) -- Could NOT find LibArchive (missing: LibArchive_LIBRARY LibArchive_INCLUDE_DIR) CMake Error at CMakeLists.txt:332 (message): CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found! Call Stack (most recent call first): CMakeLists.txt:514 (CMAKE_BUILD_UTILITIES) -- Configuring incomplete, errors occurred!
BZIP2をインストールして再度。
yum install bzip2 bzip2-devel ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
エラー。
-- Could NOT find LibArchive (missing: LibArchive_LIBRARY LibArchive_INCLUDE_DIR) CMake Error at CMakeLists.txt:332 (message): CMAKE_USE_SYSTEM_LIBARCHIVE is ON but LibArchive is not found! Call Stack (most recent call first): CMakeLists.txt:514 (CMAKE_BUILD_UTILITIES) -- Configuring incomplete, errors occurred!
LibArchiveをインストールして再度対処。
yum install libarchive libarchive-devel ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
エラー。
-- Could NOT find EXPAT (missing: EXPAT_LIBRARY EXPAT_INCLUDE_DIR) CMake Error at CMakeLists.txt:355 (message): CMAKE_USE_SYSTEM_EXPAT is ON but a expat is not found! Call Stack (most recent call first): CMakeLists.txt:514 (CMAKE_BUILD_UTILITIES) -- Configuring incomplete, errors occurred!
対処。
yum install expat expat-devel ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
お!通ったっぽいけど、Qt4がないって言ってる。ここまで来たらきれいに終わらせたい。
-- Could NOT find Qt4 (missing: QT_QMAKE_EXECUTABLE QT_MOC_EXECUTABLE QT_RCC_EXECUTABLE QT_UIC_EXECUTABLE QT_INCLUDE_DIR QT_LIBRARY_DIR QT_QTCORE_LIBRARY) -- Performing Test run_pic_test -- Performing Test run_pic_test - Success -- Configuring done -- Generating done -- Build files have been written to: /usr/local/src/cmake-2.8.10.2 --------------------------------------------- CMake has bootstrapped. Now run gmake.
yum install qt qt-devel ./bootstrap --prefix=/usr/local/cmake-2.8.10.2 --system-libs
やっとできた。
うまく通った時の最後あたり。
-- Using system-installed BZIP2 -- Using system-installed CURL -- Using system-installed EXPAT -- Using system-installed LIBARCHIVE -- Using system-installed ZLIB Curses libraries were not found. Curses GUI for CMake will not be built. -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - found -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - not found -- Found Qt4: /usr/bin/qmake-qt4 (found version "4.6.2") -- Performing Test QT4_WORKS -- Performing Test QT4_WORKS - Success -- Configuring done -- Generating done -- Build files have been written to: /usr/local/src/cmake-2.8.10.2 --------------------------------------------- CMake has bootstrapped. Now run gmake.
後はmakeします。
make make install cd /usr/local ln -sfn cmake-2.8.10.2 cmake vi /etc/bashrc
prefixにバージョン番号を入れて、/usr/localにリンクを貼っています。それは各自お好きなように。あと、パスを通すために/etc/bashrcに以下のテキストを追加したら終わり。
# cmake export PATH=/usr/local/cmake/bin:$PATH export MANPATH=/usr/local/cmake/man:$MANPATH