1 基本环境配置
Xgboost安装需要基本的环境支持,gcc,cmake,Python,它们的版本要求如下
- gcc>=4.8,因为需要C++11支持
- cmake,安装最新的即可
- Python,安装2.7版本
2 各个环境安装
- gcc安装
从https://gcc.gnu.org/mirrors.html下载>=4.8版的源码,解压,进入到源码所在的文件夹,编译,安装,指令如下
./configure --disable-multilib --enable-host-shared --prefix=your install path
make
make install
在configrue中加入–disable-multilib的作用是防止在64位机器上编译出错,如果不加需要32位的libc支持。 –enable-host-shared的作用是使编译的库是position-independent machine code
- cmake安装
从 https://cmake.org/install/ 下载3.10.2版本的cmake,解压后执行如下配置,则编译好的环境会安装到your install path
env CC=cc CXX=CC ./bootstrap --prefix=your install path
make
make install
- Python2.7安装
下载源码,按照如下方式安装
./configure --prefix=your install path
make
make install
3 安装Xgboost
- 编译C++源码
克隆xgboost源码:
git clone --recursive https://github.com/dmlc/xgboost
编译C++代码
cd xgboost
cp make/config.mk ./
make
编译完成后会在xgboost/lib下产生三个文件:libxgboost4j.so,libxgboost.a,libxgboost.so
- 编译Java环境可以使用的接口
cd jvm-packages
如果机器上有多个gcc版本,系统中的gcc版本较低,需要修改create_jni.py,因为cmake在编译Java环境的包时会默认使用系统环境中的低版本gcc,需要在create_jni.py总制定cmake使用的gcc版本,修改后的create_jni.py如下,需要在CONFIG中加入**”CMAKE_C_COMPILER”: “/opt/meituan/.local/gcc-4.8.2-install/bin/gcc”,
“CMAKE_CXX_COMPILER”: “/opt/meituan/.local/gcc-4.8.2-install/bin/g++”**
CONFIG = {
"USE_OPENMP": "ON",
"USE_HDFS": "OFF",
"USE_AZURE": "OFF",
"USE_S3": "OFF",
"PLUGIN_UPDATER_GPU": "OFF",
"JVM_BINDINGS": "ON",
**"CMAKE_C_COMPILER": "/opt/meituan/.local/gcc-4.8.2-install/bin/gcc",
"CMAKE_CXX_COMPILER": "/opt/meituan/.local/gcc-4.8.2-install/bin/g++"**
}
编译
mvn -DskipTests install
或者发布到公共仓库中
mvn deploy