...
Пересказ инструкции http://birchroad.wordpress.com/2011/03/15/installing-apache-thrift-in-ubuntu/ + небольшие дополнения + fb303.
Подготовить pbuilder
см. страницу pbuilder
Исходники
Идем на http://thrift.apache.org/download/
там переходим по ссылке для актуальной версии, и нам говорят url: http://www.sai.msu.su/apache/thrift/0.8.0/thrift-0.8.0.tar.gz
~> mkdir building_thrift
~> cd building_thrift
~/building_thrift> wget 'http://www.sai.msu.su/apache/thrift/0.8.0/thrift-0.8.0.tar.gz'
~/building_thrift> ls
thrift-0.8.0.tar.gz
Сборка
~/building_thrift> ls
thrift-0.8.0.tar.gz
~/building_thrift> mkdir thrift
~/building_thrift> cd thrift
~/building_thrift/thrift> tar -xzf ../thrift-0.8.0.tar.gz
~/building_thrift/thrift> cd thrift-0.8.0
~/building_thrift/thrift/thrift-0.8.0> perl -pi -e 's/libmono-dev/libmono-2.0-dev/' ./contrib/debian/control # Потому что libmono-dev уже нет
Если ломается с
The following packages have unmet dependencies: pbuilder-satisfydepends-dummy : Depends: python-support which is a virtual package.
– добавить в конфиг “компоненты universe и multiverse”, см. страницу pbuilder .
Продолжаем:
~/building_thrift/thrift/thrift-0.8.0> ln -s contrib/debian debian
~/building_thrift/thrift/thrift-0.8.0> dpkg-buildpackage -S -us -uc
~/building_thrift/thrift/thrift-0.8.0> ls ..
thrift-0.8.0 thrift_0.8.0.dsc thrift_0.8.0_source.changes thrift_0.8.0.tar.gz
~/building_thrift/thrift/thrift-0.8.0> cd ..
~/building_thrift/thrift> ~/bin/pbuilder-precise build *.dsc
<...ждем и смотрим на вывод...>
~/building_thrift/thrift> ls ~/pbuilder/result
libthrift0_0.8.0_amd64.deb libthrift-java_0.8.0_all.deb python-thrift_0.8.0_amd64.deb thrift_0.8.0.tar.gz
libthrift-cil_0.8.0_all.deb libthrift-perl_0.8.0_all.deb python-thrift-dbg_0.8.0_amd64.deb thrift-compiler_0.8.0_amd64.deb
libthrift-dev_0.8.0_amd64.deb libthrift-ruby_0.8.0_amd64.deb thrift_0.8.0_amd64.changes
libthrift-erlang_0.8.0_all.deb php5-thrift_0.8.0_amd64.deb thrift_0.8.0.dsc
Подписи
Если требуется для загрузки в репозиторий пакетов.
Пишут еще про переменную ‘‘$DEBSIGN_KEYID’’.
> gpg --list-keys # смотрим keyid
> debsign -k<keyid> ~/pbuilder/result/thrift_0.8.0.dsc
> debsign -k<keyid> ~/pbuilder/result/thrift_0.8.0_amd64.changes
Сборка fb303
Нужен для Scribe’а.
Если еще не настроен – добавляем к pbuilder’у локальный репозиторий, см. страницу pbuilder
Положили в локальный репозиторий собранные thrift-пакеты:
> cp ~/pbuilder/result/* /home/<user>/pbuilder-local-deps/
Если еще нет – установили необходимые пакеты:
> sudo apt-get install automake apt-utils libboost-all-dev
Продолжаем там же, где собирали thrift:
> pwd
/home/lena-san/building_thrift/thrift/thrift-0.8.0
> cd thrift-0.8.0/contrib
> cp -r fb303 fb303-0.8.0
> cd fb303-0.8.0
> pwd
/home/lena-san/building_thrift/thrift/thrift-0.8.0/fb303-0.8.0
> ./bootstrap.sh
> cp ../../install-sh ./
> dh_make --single --email <user@domain.tld> --createorig
> echo '\n\noverride_dh_auto_configure:\n\tdh_auto_configure -- --with-thriftpath=/usr CPPFLAGS="-DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H"\n' >> debian/rules
> perl -pi -e 's/^(Build-Depends:.*)$/$1, libboost1.46-dev, thrift-compiler, libthrift-dev, python-dev/' debian/control
> dpkg-buildpackage -S -us -uc
> cd ..
> pwd
/home/lena-san/building_thrift/thrift/thrift-0.8.0
> ~/bin/pbuilder-precise build fb303_0.8.0-1.dsc
> ls ~/pbuilder/result | grep fb303
fb303_0.8.0-1_amd64.changes
fb303_0.8.0-1_amd64.deb
fb303_0.8.0-1.debian.tar.gz
fb303_0.8.0-1.dsc
fb303_0.8.0.orig.tar.gz