Getting AGE


The releases and release notes can be found at

Source code

The source code can be found at

Installing From Source Code


Install the following essential libraries according to each OS. Building AGE from source depends on the following Linux libraries (Ubuntu package names shown below):


yum install gcc glibc glib-common readline readline-devel zlib zlib-devel flex bison


dnf install gcc glibc bison flex readline readline-devel zlib zlib-devel


sudo apt-get install build-essential libreadline-dev zlib1g-dev flex bison

Install Postgres

You will need to install a AGE compatible version of Postgres. AGE supports Postgres 11, 12, 13, 14 and 15.

Install From Source Code

You can download the Postgres source code and install your own instance of Postgres. You can read instructions on how to install from source code on the offical Postgres Website

Install From a Package Manager

You can use a package management that your OS provides to download Postgres.


Postgres 15
sudo apt install postgresql-15 postgresql-server-dev-all
Postgres xx
sudo apt install postgresql-xx postgresql-server-dev-all


Clone the github repository or download an official release

Run the pg_config utility and check the version of PostgreSQL. Apache AGE supports all the stable versions of postgresql(11, 12, 13, 14 and 15).

The build process will attempt to use the first path in the PATH environment variable when installing AGE. If the pg_config path is located there, run the following command in the source code directory of Apache AGE to build and install the extension.

make install

If the path to your Postgres installation is not in the PATH variable, add the path in the arguments:

make PG_CONFIG=/path/to/postgres/bin/pg_config install

Post Installation AGE Setup

After the installation, open a connection to a running instance of your database and run the CREATE EXTENSION command to have AGE installed on the server.


Installing via docker image

Get the docker image

docker pull apache/age

On the terminal

docker run \
    --name myPostgresDb  \
    -p 5455:5432 \
    -e POSTGRES_USER=postgresUser \
    -e POSTGRES_PASSWORD=postgresPW \
    -e POSTGRES_DB=postgresDB \
    -d \

Docker variables



Assign a name to the container


Publish a container’s port(s) to the host


Set environment variables


Run container in background and print container ID

Post Installation

Per Session Instructions

For every connection of AGE you start you will need to load the AGE extension.

LOAD 'age';

We recommend adding ag_catalog to your search_path to simplify your queries. The rest of this document will assume you have done so. If you do not, remember to add ‘ag_catalog’ to your cypher query function calls.

SET search_path = ag_catalog, "$user", public;

Allow non-superusers to use Apache AGE

sudo ln -s /usr/lib/postgresql/15/lib/ /usr/lib/postgresql/15/lib/plugins/
  • In order to use Apache AGE, users need USAGE privileges on the ag_catalog schema (example for user db_user):

GRANT USAGE ON SCHEMA ag_catalog TO db_user;