Instalacja gearman-job-server 1.0.6 na Debianie Wheezy

Ostatnio trafiłem na ciekawą usługę, która pozwala oddelegować długo trwające zadania z usługi webowej. Mowa o Gearman’ie. Usługa jest o tyle ciekawa że nie narzuca ani języka dla klienta (większość popularnych ma gotowe biblioteki), ani język dla skryptów w tej usłudze nie jest narzucany. Można tę usługę wykorzystać jako most pomiędzy PHP a np. Javą/Pythonem lub do zlecenia zadań z serwera na Linux’ie do wykonania na serwerze Windowsowym (bo np. narzędzia dostępne są tylko dla Windowsa). O innych zaletach można poczytać na stronce więc nie będę przynudzać.
Standardowo zainstalowałem paczkę z repo Debiania i rozbiłem się przy kompilacji modułu z PECL’a – w repo była jakaś prehistoryczna wersja. Postanowiłem uruchomić aktualną wersje 1.0.6 z gałęzi testowej przekompilowując ją na Wheezym (by uniknąć zależności z wersji testowej).

Instalacja gearman’a

Dorzucamy źródła z testing – dzięki temu nie aktualizujemy systemu ale będziemy mogli pobrać świeże paczki źródłowe:

echo "deb-src http://ftp.pl.debian.org/debian jessie main non-free contrib" >> /etc/apt/sources.list
apt-get update

Przygotowujemy katalog roboczy, pobieramy paczki i kompilujemy:

mkdir gearman
cd gearman

apt-get build-dep gearman-job-server -y
apt-get install bzr
apt-get source gearman-job-server
cd gearmand-1.0.6
./debian/rules clean
./debian/rules binary
cd ..
dpkg -i gearman-job-server_1.0.6-2_i386.deb gearman-tools_1.0.6-2_i386.deb libgearman-dev_1.0.6-2_i386.deb libgearman7_1.0.6-2_i386.deb
apt-get install -f -y

Musiałem ręcznie doinstalować bazar (paczka bzr), bo w czasie kompilacji pojawiały się błędy z tym poleceniem – nie jestem pewien na ile jest potrzebne ale oczywiście możemy to posprzątać po skompilowaniu paczek.
P.S. Jestem przekonany że zamiast “rules clean/binary” jest jakieś polecenie, którego powinno się użyć ale nie mogłem sobie go przypomnieć…

Instalacja modułu dla PHP’a

Ponieważ wcześniej zainstalowaliśmy aktualne biblioteki libgearman-dev to instalacja modułu dla PHP powinna być bardzo prosta:

pecl install gearman
echo "extension=gearman.so" > /etc/php5/conf.d/gearman.ini

P.S. W paczkach PHP 5.3 z dotdeb’a można znaleźć już skompilowany moduł dla gearman’a.

Na razie tyle – muszę teraz poszukać jak w wygodny, zautomatyzowany sposób zarządzać skryptami zleconymi do gearman’a.

3 thoughts on “Instalacja gearman-job-server 1.0.6 na Debianie Wheezy”

  1. ~/gearman# apt-get build-dep gearman-job-server -y
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Picking ‘gearmand’ as source package instead of ‘gearman-job-server’
    E: Build-Depends dependency for gearmand cannot be satisfied because the package dh-systemd cannot be found

Leave a Reply

Your email address will not be published. Required fields are marked *