2.3.1. Debian

This section describes how to install Neo4j on Debian, and Debian-based distributions like Ubuntu, using the Neo4j Debian package.

This section describes the following:

2.3.1.1. Installation

To install Neo4j on Debian you need to make sure of the following:

  • An OpenJDK Java 11 runtime is installed or available through your package manager.
  • The repository containing the Neo4j Debian package is known to the package manager.
Java Prerequisites (Oracle Java, Debian 9+ and Ubuntu 16.04+ only)

Neo4j 4.1 requires the Java 11 runtime. Java 11 is not included in Ubuntu 16.04 LTS or Debian 9 (stretch) and will have to be set up manually prior to installing or upgrading to Neo4j 4.1, as described below. Debian 9 users can find OpenJDK 11 in backports. Debian 10 and Ubuntu 18.04 onwards already have the Openjdk Java 11 package available through apt.

Oracle Java and Debian

Neo4j is compatible with Oracle Java on Debian/Ubuntu Linux, but should be installed via tarball. The Debian installer may still be used, but it will install OpenJDK Java 11 in addition to any existing Java installations.

This is due to changes in Oracle’s Debian package manifest between Java versions 8 and 11.

Java 11 on Debian 9

Add the line deb http://httpredir.debian.org/debian stretch-backports main to a file with the ".list" extension in /etc/apt/sources.list.d/. Then run apt-get update:

echo "deb http://httpredir.debian.org/debian stretch-backports main" | sudo tee -a /etc/apt/sources.list.d/stretch-backports.list
sudo apt-get update

You are now ready to install Neo4j, which will install Java 11 automatically if it is not already installed. See the section called “Dealing with multiple installed Java versions” to make sure you can start Neo4j after install.

Java 11 on Ubuntu 16.04

Add the official OpenJDK package repository to apt:

sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt-get update

You are now ready to install Neo4j, which will install Java 11 automatically if it is not already installed. See the section called “Dealing with multiple installed Java versions” to make sure you can start Neo4j after install.

Dealing with multiple installed Java versions

It is important that you configure your default Java version to point to Java 11, or Neo4j 4.1.1 will be unable to start. Do so with the update-java-alternatives command.

  • First list all your installed version of Java with update-java-alternatives --list

    Your results may vary, but this is an example of the output:

    java-1.11.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.11.0-openjdk-amd64
    java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64
  • Identify your Java 11 version, in this case it is java-1.11.0-openjdk-amd64. Then set it as the default with (replacing <java11name> with the appropriate name from above)

    sudo update-java-alternatives --jre --set <java11name>
Add the repository

The Debian package is available from https://debian.neo4j.com.

  • To use the repository for generally available versions of Neo4j, run:

    wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
    echo 'deb https://debian.neo4j.com stable latest' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
    sudo apt-get update

To avoid the risk of the apt package manager accidentally forcing a database upgrade, different major and minor releases of Neo4j are also available separately inside the repository. To install Neo4j this way, specify the major and minor version required, in place of latest.

We recommend the following method for production or business critical installations:

wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable 4.1' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
sudo apt-get update
  • To use the repository for milestone releases, alpha, beta, release candidate and preview versions of Neo4j, run:

    wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
    echo 'deb https://debian.neo4j.com testing 4.1' | sudo tee -a /etc/apt/sources.list.d/neo4j.list
    sudo apt-get update
  • Once the repository has been added into apt, you can verify which Neo4j versions are available by running:

    apt list -a neo4j

In Ubuntu server installations you will also need to make sure that the universe repository is enabled. If the universe repository is not present, the Neo4j installation will fail with the error Depends: daemon but it is not installable.

This can be fixed by running the command:

sudo add-apt-repository universe
Install Neo4j

To install Neo4j Community Edition:

sudo apt-get install neo4j=1:4.1.1

To install Neo4j Enterprise Edition:

sudo apt-get install neo4j-enterprise=1:4.1.1

Note that the version includes an epoch version component (1:), in accordance with the Debian policy on versioning.

Versions of Neo4j that are not yet generally available may differ in naming.

The naming structure of packages are normally composed as neo4j-enterprise=1:<version>~<release>. For example, Neo4j Enterprise Edition Milestone Release 3 would be: neo4j-enterprise=1:4.0.0~beta03mr03.

Refer to the download page for more information regarding the name of packages.

When installing Neo4j Enterprise Edition, you will be prompted to accept the license agreement. Once the license agreement is accepted installation begins. Your answer to the license agreement prompt will be remembered for future installations on the same system.

To forget the stored answer, and trigger the license agreement prompt on subsequent installation, use debconf-communicate to purge the stored answer:

echo purge | sudo debconf-communicate neo4j-enterprise
Non-interactive installation of Neo4j Enterprise Edition

For Neo4j Enterprise Edition, the license agreement is presented in an interactive prompt. If you require non-interactive installation of Neo4j Enterprise Edition, you can indicate that you have read and accepted the license agreement using debconf-set-selections:

echo "neo4j-enterprise neo4j/question select I ACCEPT" | sudo debconf-set-selections
echo "neo4j-enterprise neo4j/license note" | sudo debconf-set-selections
Offline installation

If you cannot reach https://debian.neo4j.com, perhaps due to a firewall, you will need to obtain Neo4j via an alternative machine which has the relevant access, and then move the package manually.

It is important to note that using this method will mean that the offline machine will not receive the dependencies that are that are normally downloaded and installed automatically when using apt for installing Neo4j; Cypher Shell and Java (if not installed already):

  1. Run the following to download the required Debian package:

    • Neo4j Enterprise Edition:

      curl -O https://dist.neo4j.org/deb/neo4j-enterprise_4.1.1_all.deb
    • Neo4j Community Edition:

      curl -O https://dist.neo4j.org/deb/neo4j_4.1.1_all.deb
  2. Manually move the downloaded Debian package to the offline machine.
  3. Run the following on the offline machine to install Neo4j:

    sudo dpkg -i <deb file name>

2.3.1.2. File locations

File locations for all Neo4j packages are documented here.

2.3.1.3. Operation

Most Neo4j configuration goes into neo4j.conf.

For operating systems using systemd, some package-specific options are set in neo4j.service and can be edited using systemctl edit neo4j.service.

For operating systems that are not using systemd, some package-specific options are set in /etc/default/neo4j.

Environment variable Default value Details

NEO4J_SHUTDOWN_TIMEOUT

120

Timeout in seconds when waiting for Neo4j to stop. If it takes longer than this then the shutdown is considered to have failed. This may need to be increased if the system serves long-running transactions.

NEO4J_ULIMIT_NOFILE

60000

Maximum number of file handles that can be opened by the Neo4j process.