CMake 2.8をソースからインストール

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