Skip to content

Building and Installing on Ubuntu 11.10

steelbrain edited this page Oct 3, 2014 · 34 revisions

Packages installation

Using sudo or as root user:

sudo apt-get update
sudo apt-get install git-core cmake g++ libboost-dev libmysqlclient-dev libxml2-dev libmcrypt-dev libicu-dev openssl binutils-dev libcap-dev libgd2-xpm-dev zlib1g-dev libtbb-dev libonig-dev libpcre3-dev autoconf libtool libcurl4-openssl-dev libboost-system-dev libboost-thread-dev libboost-program-options-dev libboost-filesystem-dev wget memcached libreadline-dev libncurses-dev libmemcached-dev libicu-dev libbz2-dev libc-client2007e-dev php5-mcrypt php5-imagick

Getting HipHop source-code

mkdir hiphop
cd hiphop
git clone git://github.com/facebook/hhvm.git --depth=1
cd hhvm
export CMAKE_PREFIX_PATH=`pwd`/../
cd ..

Building third-party libraries

libevent

wget http://github.com/downloads/libevent/libevent/libevent-2.0.18-stable.tar.gz
tar -xzvf libevent-2.0.18-stable.tar.gz
cd libevent-2.0.18-stable
cp ../hhvm/third-party/libevent-2.0.15-changes.diff .
patch -p1 < libevent-2.0.15-changes.diff
./configure --prefix=$CMAKE_PREFIX_PATH
make
make install
cd ..

libCurl

Make sure that your system time is correct, otherwise ./configure will fail.

wget http://curl.haxx.se/download/curl-7.21.2.tar.gz
tar -xvzf curl-7.21.2.tar.gz
cd curl-7.21.2
cp ../hhvm/third-party/libcurl.fb-changes.diff .
patch -p1 < libcurl.fb-changes.diff
./configure --prefix=$CMAKE_PREFIX_PATH
make
make install
cd ..

libmemcached

wget http://launchpad.net/libmemcached/1.0/0.49/+download/libmemcached-0.49.tar.gz
tar -xzvf libmemcached-0.49.tar.gz
cd libmemcached-0.49
./configure --prefix=$CMAKE_PREFIX_PATH
make
make install
cd ..

Building HipHop

cd hhvm
git submodule update --init --recursive
cmake .
make

Running programs

The hhvm binary can be found in hphp/hhvm/hhvm.

Errors

If any errors occur, it may be required to remove the CMakeCache.txt directory in the checkout.

If your failure was on the make command, try to correct the error and run make again, it should restart from the point it stops. If don’t, try to remove as explained above.

Clone this wiki locally