1. CentOS setup
The following command install all the required tools and libraries to build and install the Apache Thrift compiler on a CentOS5/RHEL5 Linux based system. These packages are available in the “base” repository.
sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
2. GIT Checkout
For those who would like to participate in Thrift development, you may checkout Thrift from the Apache GIT repository.
3.Building from source
If you are building from the first time out of the source repository, you will need to generate the configure scripts. (This is not necessary if you downloaded a released tarball.) From the top directory, do:
./bootstrap.sh
Once the configure scripts are generated, thrift can be configured. From the top directory, do:
./configure
You may need to specify the location of the boost files explicitly. If you installed boost in /usr/local, you would run configure as follows:
./configure --with-boost=/usr/local
If you want to override the logic of the detection of the Java SDK, use the JAVAC environment variable:
./configure JAVAC=/usb/bin/javac
Note that by default the thrift C++ library is typically built with debugging symbols included. If you want to customize these options you should use the CXXFLAGS option in configure, as such:
Once you have run configure you can build Thrift via make:
make
and run the test suite:
make check
Issues while compiling
“compiler/cpp/thriftl.cc:2190: undefined reference to yywrap'”
you need to install the Flex library (See also Apache Thrift Requirements ) and re-run the configuration script.
mv: cannot stat “'.deps/TBinaryProtocol.Tpo': No such file or directory” while building the Thrift Runtime Library
Re-reun configure with
--enable-libtool-lock
or by turning off parallel make by placing .NOTPARALLEL: in lib/cpp/Makefile or
make -j 1
Although the thrift compiler build appears to be compatible with parallel make without libtool lock, the thrift runtime build is not.
Installing
From the top directory, become superuser and do:
make install
Note that some language packages must be installed manually using build tools better suited to those languages (this applies to Java, Ruby, PHP).
Look for the README file in the lib// folder for more details on the installation of each language library package.
4.Maven artifact
org.apache.thrift
libthrift
0.9.0
附git安装问题及处理方法:
下载源代码安装后,git clone出现“fatal unable to find remote helper for 'https'”的错误,怀疑是git安装不完全
使用yum安装,出现:
Setting up Install Process
No package git available.
Nothing to do
解决办法:
需要先添加EPEL(Extra Packages for Enterprise Linux) repository: