Skip to content

Instantly share code, notes, and snippets.

@nmilford
Created July 5, 2013 19:56
Show Gist options
  • Select an option

  • Save nmilford/5936849 to your computer and use it in GitHub Desktop.

Select an option

Save nmilford/5936849 to your computer and use it in GitHub Desktop.
Building RethinkDB on CentOS
# Make a build env (builds will be slower because it is a VM)
vagrant init CentOS-5-x86_64 http://puppet-vagrant-boxes.puppetlabs.com/centos-59-x64-vbox4210-nocm.box
vagrant up
vagrant ssh
# Install EPEL and My Repo (RMIO)
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
sudo rpm -Uvh http://repo.milford.io/el/rmio-0.0.1-1.noarch.rpm
# Install EPEL and Base stuff
sudo yum -y install gcc44-c++ protobuf-compiler protobuf-devel python26 libaio-devel valgrind-devel gtest glibc-devel
# Install my custom stuff.
sudo yum -y install v8-devel boost154-devel gperftools-devel libunwind-devel
# Spec files for the dep RPMs so you can see how I built themm (like for a static tcmalloc_minimal lib)
# https://github.com/nmilford/rpm-v8
# https://github.com/nmilford/rpm-libunwind
# https://github.com/nmilford/rpm-gperftools
# https://github.com/nmilford/rpm-boost154
# Upgrade everything
sudo yum -y upgrade
# Reboot to be on the latest kernel, etc...
sudo reboot
# Log back in and begin
vagrant ssh
# Grab rethinkdb
wget http://download.rethinkdb.com/dist/rethinkdb-1.7.1.tgz
tar xf rethinkdb-1.7.1.tgz
cd rethinkdb-1.7.1/
# Configure using GCC 4.4
export CXX=g++44
./configure
make
[vagrant@localhost rethinkdb-1.7.1]$ ./configure
* Detecting system configuration
Bash: 3.2.25(1)-release
Operating System: Linux
OS Version: Linux 2.6.18-348.6.1.el5 x86_64
Without tcmalloc: no
Build client drivers: no
Architecture: x86_64
Use ccache: no
C++ Compiler: GCC 4.4.7 (/usr/bin/g++44)
Precompiled web assets: yes
Protobuf compiler: /usr/bin/protoc
wget: /usr/bin/wget
curl: /usr/bin/curl
protobuf: -lprotobuf
v8: -lv8
tcmalloc_minimal (static): /usr/lib64/libtcmalloc_minimal.a
Test protobuf: ok
Installation prefix: /usr/local
Configuration prefix: /usr/local/etc
Runtime data prefix: /usr/local/var
* Wrote configuration to config.mk
[vagrant@localhost rethinkdb-1.7.1]$ make
mk/support.mk:103: warning: undefined variable `LESSC'
mk/support.mk:103: warning: undefined variable `HANDLEBARS'
mk/support.mk:103: warning: undefined variable `LESSC'
mk/support.mk:103: warning: undefined variable `HANDLEBARS'
[1/288] MKDIR build/release/proto
[2/288] PROTOC[CPP] src/rdb_protocol/ql2.proto
[3/288] PROTOC[CPP] src/rdb_protocol/ql2_extensions.proto
[4/288] CC build/release/proto/rdb_protocol/ql2.pb.cc -o build/release/obj/rdb_protocol/ql2.pb.o
[5/288] CC build/release/proto/rdb_protocol/ql2_extensions.pb.cc -o build/release/obj/rdb_protocol/ql2_extensions.pb.o
[6/288] MKDIR build/release/re2
[7/288] MAKE -C ./external/re2
[8/288] CC src/extproc/pool.cc -o build/release/obj/extproc/pool.o
<snip>
[166/288] CC src/arch/spinlock.cc -o build/release/obj/arch/spinlock.o
[167/288] CC src/arch/runtime/context_switching.cc -o build/release/obj/arch/runtime/context_switching.o
[168/288] CC src/arch/runtime/runtime_utils.cc -o build/release/obj/arch/runtime/runtime_utils.o
[169/288] CC src/arch/runtime/event_queue/poll.cc -o build/release/obj/arch/runtime/event_queue/poll.o
[170/288] CC src/arch/runtime/event_queue/epoll.cc -o build/release/obj/arch/runtime/event_queue/epoll.o
src/arch/runtime/event_queue/epoll.cc: In function ‘int user_to_epoll(int)’:
src/arch/runtime/event_queue/epoll.cc:29: error: ‘EPOLLRDHUP’ was not declared in this scope
src/arch/runtime/event_queue/epoll.cc: In function ‘int epoll_to_user(int)’:
src/arch/runtime/event_queue/epoll.cc:43: error: ‘EPOLLRDHUP’ was not declared in this scope
src/arch/runtime/event_queue/epoll.cc: In constructor ‘epoll_event_queue_t::epoll_event_queue_t(linux_queue_parent_t*)’:
src/arch/runtime/event_queue/epoll.cc:52: error: ‘epoll_create1’ was not declared in this scope
make[1]: *** [build/release/obj/arch/runtime/event_queue/epoll.o] Error 1
make: *** [make] Error 2
[vagrant@localhost rethinkdb-1.7.1]$ uname -a
Linux localhost.localdomain 2.6.18-348.6.1.el5 #1 SMP Tue May 21 15:29:55 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment