缺少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 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命令,再次提示错误。
看起来是编译时不认识uint16_t这个别名,修改很简单,头文件包含即可。在/root/PoD-3.16-Source/app/MiscCommon/proof_status_file/ProofStatusFile.h中的第19行加入#include 。具体插入的位置可能因PoD代码版本不同而有些差别,但有C或者C++基础的人应该很容易能找到合适的位置。
再次运行make命令,终于完美通过。
该命令运行无任何报错。如果无指定配置,PoD会被安装在用户目录的Pod目录下,如我以root用户安装,则安装在/root/PoD目录下。
PoD安装最后一步相关配置写入初始化文件,这里可以继续加入/etc/profile.d/root.sh的末尾:
source /root/PoD/3.16/PoD_env.sh