How To Install Memcached From Source on Ubuntu 20.04
Posted on July 1, 2021 • 4 min read • 659 wordsIn this tutorial we learn how to compile and install Memcached on Ubuntu 20.04. We will also compile latest version of libevent for Memcached.
This tutorial explain how to install memcached from source on Ubuntu 20.04 (LTS) Focal Fossa. Memcached can be use for any caching usage but mostly used by dynamic web application to reduce database load. We can also cache API calls and page rendering.
Memcached (pronounced: mem-cash-dee) is a free, high performance, distributed memory object caching system.
Why Memcached from source? Ubuntu already shipped with Memcached but not the latest version. The version shipped with Ubuntu 20.04 is 1.5.22 while the latest stable of Memcached is 1.6.9.
This tutorial assumes we have a fresh install of Ubuntu 20.04. Any flavor of ubuntu will works but in this tutorial I use Ubuntu Server 20.04.
Before we can compile memcached, we need to install tools to compile memcached and memcached dependencies.
We can use command below to install three packages needed so we can compile memcached on ubuntu 20.04.
sudo apt-get install gcc make libevent-dev libc6-dev --no-install-recommends
```bash
We use `--no-install-recommends` options so apt will only install package that we asked to install and its dependencies only.
You can see description of each package that we install below:
* **gcc** is GNU C compiler that will be used to compile memcached source code
* **make** is utility for directing compilation
* **libc6-dev** is GNU C library and header files
* **libevent-dev** is asynchronous event notification library development files
## Compile Memcached on Ubuntu 20.04 {#h-compile-memcached-on-ubuntu-20-04}
Now all tools installed we can start compiling Memcached on Ubuntu 20.04.
Download memcached source code from memcached website. To get latest version of Memcached you can visit [Memcached download page][1].
To download using `wget` we can use command below.
```bash
wget -c http://www.memcached.org/files/memcached-1.6.9.tar.gz
To download using curl
we can use command below.
curl http://www.memcached.org/files/memcached-1.6.9.tar.gz --output memcached-1.6.9.tar.gz
```bash
After download finished, Extract downloaded file using command below
```bash
tar xzf memcached-1.6.9.tar.gz
Go to the new directory
cd memcached-1.6.9/
```bash
Configure the code before we can compile memcached. We will use `--prefix=/opt/memcached` so memcached binary and libraries will be installed on /opt/memcached instead of `/usr/local`
```bash
./configure --prefix=/opt/memcached
After configuration complete. let’s compile Memcached
make
```bash
```bash
$ ./memcached --version
memcached 1.6.9
To install memcached we can use command below
sudo make install
```bash
We need to use sudo since we're installing on `/opt` directory.
## Compiling Memcached With Latest Version of Libevent {#h-compiling-memcached-with-latest-version-of-libevent}
Memcached use [libevent][2] library. The one shipped with ubuntu is [version 2.1.11][3]
We can use latest version of Libevent to compile memcached. If you're wondering why compile memcached with latest version of libevent? for now just because we can. I haven't done any benchmark to compare memcached compiled with libevent shipped with ubuntu 20.04 and memcached compiled with latest version of libevent.
Let's get started. Download libevent 2.1.8 using wget
```bash
wget -c https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
Extract downloaded file
tar xzf libevent-2.1.12-stable.tar.gz
```bash
Go to the extracted directory
```bash
cd libevent-2.1.12-stable
Before we run configure, we need to install libssl-dev
package. Since this version of libevent needs openssl headers. We can install libssl-dev using the command below.
sudo apt-get install libssl-dev
```bash
Run configure with `--prefix` option since we want to install libevent on `/opt/libevent` instead of on default path.
```bash
./configure --prefix=/opt/libevent
Compile libevent using make
make
```bash
Install compiled libevent
```bash
sudo make install
We assume you already download source code of Memcached 1.6.9. Extracted the compressed source code
tar xzf memcached-1.6.9.tar.gz
```bash
Go to the new directory
```bash
cd memcached-1.6.9/
We run ./configure
with prefix and with-libevent option
./configure --prefix=/opt/memcached --with-libevent=/opt/libevent
```bash
Compile memcached source using `make`
```bash
make
We can test whether memcached already compiled successfully by checking version using command below
./memcached --version
```bash
To install compiled memcache we will use make with install option.
```bash
make install
In this tutorial we learned how to compile memcached from source on Ubuntu 20.04 (Focal Fossa). We also tried to compile latest stable release of libevent and compile memcached with compiled libevent. Until next time.