Install Gearman from source on Ubuntu 18.04
I tried to install Gearman on my Ubuntu 18.04 Docker container and encountered a lot of issues.
This write-up is to save you some valuable time of your life.
TL;DR
apt update
apt install -y g++ uuid-dev gperf libboost-all-dev libevent-dev curl
cd /tmp
curl -LO https://github.com/gearman/gearmand/releases/download/1.1.18/gearmand-1.1.18.tar.gz
tar xvzf gearmand-1.1.18.tar.gz
cd gearmand-1.1.18
./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu
make
make test
make install
# Start gearman in the background
gearmand --log-file /var/log/gearmand.log --daemon
To get there, I encountered the following issues:
configure: error: Unable to find libevent
./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu
...
checking test for a working libevent... no
configure: error: Unable to find libevent
Fix: apt install -y libevent-dev
configure: error: Could not find a version of the library!
./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu
...
checking whether the Boost::Program_Options library is available... yes
configure: error: Could not find a version of the library!
Fix: apt install -y libboost-all-dev
Installing the PHP client libraries for Gearman
If you intend to use PHP to talk to your Gearman service, use the following to get the libraries installed.
Note: you might not need the last line. This is to enable the Gearman PHP extension in Docker.
cd /tmp \
&& wget https://github.com/wcgallego/pecl-gearman/archive/gearman-2.0.6.tar.gz\
&& tar xvzf gearman-2.0.6.tar.gz \
&& mv pecl-gearman-gearman-2.0.6 pecl-gearman \
&& cd pecl-gearman \
&& phpize \
&& ./configure \
&& make -j$(nproc) \
&& make install \
&& cd / \
&& rm /tmp/gearman-2.0.6.tar.gz \
&& rm -r /tmp/pecl-gearman \
&& docker-php-ext-enable gearman