Skip to content

Instantly share code, notes, and snippets.

@kaustavha
Last active January 4, 2016 19:49
Show Gist options
  • Save kaustavha/298fd415e24d4fd78239 to your computer and use it in GitHub Desktop.
Save kaustavha/298fd415e24d4fd78239 to your computer and use it in GitHub Desktop.
Scribe

I.e. what you will need to do to run facebookarchive/scribe/scribe_cat Good luck mate.

On ubuntu 14.04 LTS

mkdir fbhell && cd fbhell
sudo apt-get install git

First we need folly

git clone https://github.com/facebook/folly.git
cd folly/folly

Get the folly deps:

sudo apt-get install \
    g++ \
    automake \
    autoconf \
    autoconf-archive \
    libtool \
    libboost-all-dev \
    libevent-dev \
    libdouble-conversion-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    liblz4-dev \
    liblzma-dev \
    libsnappy-dev \
    make \
    zlib1g-dev \
    binutils-dev \
    libjemalloc-dev \
    libssl-dev \
    libiberty-dev

Make folly

autoreconf -ivf
./configure
make
make check
sudo make install

Then we need wangle

git clone https://github.com/facebook/wangle.git
cd wangle/wangle

Wangle needs cmake as well as many things folly required.

sudo apt-get install cmake

Now make and install it.

cmake .
make
ctest
sudo make install

Getting a bit closer, now we can build thrift

git clone https://github.com/facebook/fbthrift.git
cd fbthrift/thrift
# Or ./build/deps_ubuntu_12.04.sh or ./build/deps_centos.sh
./build/deps_ubuntu_14.04.sh
autoreconf -if && ./configure && make
make install

Ok we also need fb303. Rackspace has the latest

git clone https://github.com/racker/thrift-fb303.git
cd thrift-fb303
./bootstrap.sh
make
make install

Ok now we can install scribe. You may have to apply this patch: facebookarchive/scribe#83

git clone https://github.com/facebookarchive/scribe.git
cd scribe
./bootstrap.sh
make
make install

Now fbthrift removed the TFrozenDict class so you will most likely have to go in and remove it from the fb303 python package.

cat /usr/local/lib/python2.7/dist-packages/fb303/FacebookService.py | grep TFrozenDict
nano /usr/local/lib/python2.7/dist-packages/fb303/FacebookService.py
cat /usr/local/lib/python2.7/dist-packages/fb303/ttypes.py | grep TFrozenDict
nano /usr/local/lib/python2.7/dist-packages/fb303/ttypes.py

(Not shown: You removing the word TFrozenDict) Ok lovely, now we can give the examples a shot:

cd scribe/examples

Read the readme in here at this point If you get a python import error it means one of the preceding dependencies didn't install properly. Feel free to cd into their respective directories, find the folder named py and run a python setup.py install.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment