I recently had to build some software I wrote over a year ago on a Centos 6.5 machine. The vast majority of my Linux experience has been with Ubuntu and Debian, so this was a whole new world for me: a totally different package manager with a slightly different directory layout. Notice that I use some older versions of the libraries; this is because I wanted to ensure 100% compatibility with my old code base, I’m sure the instructions are more or less unchanged for newer versions. Follow up in the comments if you notice any deviations.
Without further ado, let’s get a build environment set up and get these libraries built.
yum groupinstall "Development Tools" # We are going to need a new version of cmake to build vtk, so remove the old one yum remove cmake yum install qt qt4 qt4-designer wget http://pkgs.repoforge.org/cmake/cmake-2.8.8-1.el6.rfx.x86_64.rpm yum install cmake-2.8.8-1.el6.rfx.x86_64.rpm wget http://www.vtk.org/files/release/5.8/vtk-5.8.0.tar.gz tar xzvf vtk-5.8.0.tar.gz cd VTK ccmake . # Press c to configure # Set type to "Release" # Enable qt # Press c # Press g # Compile with one process per core (including hyper-threading cores) make -j `nproc` su make install ln -s /usr/local/vtk-5.8 /usr/local/vtk
Building ITK is very similar, except it forces you to build it outside of the source directory.
wget http://downloads.sourceforge.net/project/itk/itk/4.1/InsightToolkit-4.1.0.tar.gz?r=http%3A%2F%2Fwww.itk.org%2FITK%2Fresources%2Flegacy_releases.html&ts=1387418924&use_mirror=iweb tar zxvf InsightToolkit-4.1.0.tar.gz mkdir itk-build cd itk-build ccmake ../InsightToolkit-4.1.0 # If you accidentally ran ccmake or cmake in the source folder you have to blow it away and remake it. # Press c # Disable examples # Enable shared libs # Release # Press c # Press g make -j `nproc` su make install
IT++ is a mathematical signal processing library that I also need.
yum install blas lapack yum install autoconf automake libtool wget http://sourceforge.net/projects/itpp/files/itpp/4.2.0/itpp-4.2.tar.gz tar xvzf itpp-4.2.tar.gz cd itpp-4.2 ./autogen.sh ./configure --without-fft --with-blas=/usr/lib64/libblas.so.3 --with-lapack=/usr/lib64/liblapack.so.3 CFLAGS=-fPIC CXXFLAGS=-fPIC CPPFLAGS=-fPIC make -j `nproc` su make install
Of course every reasonable software project written in C++ depends on Boost. In my case, the version 1.41 that they package with Centos 6.5 is not adequate because the Boost Filesystem API changed in newer versions.
wget http://downloads.sourceforge.net/project/boost/boost/1.49.0/boost_1_49_0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.49.0%2F&ts=1387504197&use_mirror=superb-dca2 tar -zxvf boost_1_49_0.tar.gz cd boost_1_49_0/ ./bootstrap.sh --prefix=/usr/local/boost ./bjam --layout=system install
There you go! Hopefully this post saves you some time, as it took a lot of trial and error for me to get the right paths and dependencies installed.