Ubuntu 14.04安装ROOT集群(2)

  缺少C++的new包,这个报错极有可能是未安装c++引起的,因为ROOT及其它组件都是使用C++编写的。因此需要安装gcc和gcc-c++。

# apt-get install gcc …… # apt-get install g++ ……

  运行root -b命令,终于成功,未报错。

安装XRootD

  安装XRootD有两种方法,通过ROOT源码包中的脚本安装,或者直接从官网下载源码安装。

通过ROOT源码包中的脚本安装XRootD

  进入ROOT源码包目录,执行以下语句即可:

./build/unix/installXrootd.sh -v 3.0.0 /opt 源码安装XRootD:

  解压后并进入源码目录:

# mkdir build; cd build # cmake /root/xrootd-3.3.0 -DCMAKE_INSTALL_PREFIX=/opt/xrootd # make # make install

  如果完全成功,则可以相关配置写入初始化文件,这里可以继续加入/etc/profile.d/root.sh的末尾:

source $ROOTSYS/bin/setxrd.sh /opt/xrootd/ 安装PoD

  官网()下载源码,这里下载使用的是3.16版本的源码:pod.gsi.de/releases/pod/3.16/PoD-3.16-Source.tar.gz。如果连接失效,可自行查找。解压源码压缩包后,并进入源码目录

cmake命令 mkdir build cd build cmake -C ../BuildSetup.cmake ..

  运行cmake时,提示缺少boost库,这里需要安装boost库。

apt-get install libboost-dev

  安装后继续运行上述的cmake命令,还是报错,提示缺少以下库:

The following Boost libraries could not be found: boost_thread boost_program_options boost_filesystem boost_system boost_unit_test_framework

  有个小tips:这些库直接使用apt-get install +库名的方式是不成功的,因为安装包和这个名称并不完全匹配,这里可以用apt-cache search的方法来查找安装包的名称再安装,以boost_thread为例。

# apt-cache search boost | grep thread libboost-thread-dev - portable C++ multi-threading (default version) libboost-thread1.46-dev - portable C++ multi-threading libboost-thread1.46.1 - portable C++ multi-threading libboost-thread1.48-dev - portable C++ multi-threading libboost-thread1.48.0 - portable C++ multi-threading

  根据这个提示,我就可以直接安装apt-get install libboost-thread-dev即可。以下:

apt-get install libboost-thread-dev apt-get install libboost-program-options-dev apt-get install libboost-filesystem-dev apt-get install libboost-system-dev apt-get install libboost-test-dev

  再接着运行cmake -C ../BuildSetup.cmake ..命令,终于成功。

make命令

  运行make命令,又报错了。

/usr/include/boost/thread/xtime.hpp:23:5: error: expected identifier before numeric constant TIME_UTC=1

  这个是boost1.5版本以下的一个固有bug,变量么命名重复了。修改起来很简单,打开/usr/include/boost/thread/xtime.hpp,将23行和71行的TIME_UTC都修改为TIME_UTC_即可,也就是说保证没有重命名。
  再次运行make命令,再次提示错误。

/root/PoD-3.16-Source/app/MiscCommon/proof_status_file/ProofStatusFile.h:88:13: error: 'uint16_t' does not name a type uint16_t xpdPort() const

  看起来是编译时不认识uint16_t这个别名,修改很简单,头文件包含即可。在/root/PoD-3.16-Source/app/MiscCommon/proof_status_file/ProofStatusFile.h中的第19行加入#include 。具体插入的位置可能因PoD代码版本不同而有些差别,但有C或者C++基础的人应该很容易能找到合适的位置。
  再次运行make命令,终于完美通过。

make install命令

  该命令运行无任何报错。如果无指定配置,PoD会被安装在用户目录的Pod目录下,如我以root用户安装,则安装在/root/PoD目录下。

PoD安装最后一步

  相关配置写入初始化文件,这里可以继续加入/etc/profile.d/root.sh的末尾:

source /root/PoD/3.16/PoD_env.sh

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7f1df53cb6983a6f4a3eaf46a9f3ddaf.html