Install Liquibase on Linux/Unix

Last updated: November 18, 2025

Before you begin

Confirm that Java is installed. If you use the Liquibase Installer, Java is included automatically.

Procedure

1

Download Liquibase.

1. Find the version of Liquibase you would like to download on our download page.

2. Once you've located the tar.gz file you would like to download from our repo you can extract it using wget or curl.

Be sure to replace your_version with the Liquibase version you want to download. For example, liquibase-secure-5.0.3.

curl -LO https://package.liquibase.com/downloads/cli/your_version.tar.gz

wget https://package.liquibase.com/downloads/cli/your_version.tar.gz 
2

Run the installer.

Extract the tar.gz.

Be sure to replace your_version with the Liquibase version you want to download. For example, liquibase-secure-5.0.3.

tar -xzf your_version.tar.gz -C /opt/liquibase
3

Apply your Liquibase Secure license key.

Using a Secrets Management tool like Hashicorp Vault or AWS Secrets Manager is best to keep Liquibase license keys secure.

There are several ways to apply the Liquibase Secure license key:

Include the Liquibase Secure license key in the Liquibase properties file and save it.

For example:

liquibase.licenseKey: aei76ou32thp785463214

Pass the Liquibase Secure license key as a parameter in the command line during runtime:

liquibase --license-key=[paste the Liquibase Secure license key] [command]

For example:

liquibase --license-key=aei76ou32thp785463214 update

Set the Liquibase Secure license key as an environment variable in the command line.

On Windows:

set LIQUIBASE_LICENSE_KEY=aei76ou32thp785463214

On Linux/macOS:

export LIQUIBASE_LICENSE_KEY=aei76ou32thp785463214

Set the Liquibase Secure license key with the JAVA_OPTS Environment Variable in the command line:

JAVA_OPTS="Dliquibase.licenseKey=<enter license key here>"

Pass the Liquibase Secure license key while using a Docker container. Docker allows the use of --env in the command.

docker run --env LIQUIBASE_LICENSE_KEY=<enter license key here>... \ -it liquibase/liquibase-secure:latest sh

If you use Maven, include the Liquibase Secure license key in the <properties> section of your pom.xml file:

<liquibaseLicenseKey>key-goes-here</liquibaseLicenseKey/>

For example:

<plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-commercial-maven-plugin</artifactId> <version>0-SNAPSHOT</version> <configuration> <changelogFile>com/example/changelog_v4.6.xml</changelogFile> <liquibaseLicenseKey>key-goes-here</liquibaseLicenseKey> </configuration> </plugin>

Note: In older versions of Liquibase, you must use the syntax <liquibaseProLicenseKey> instead of <liquibaseLicenseKey>.

If you use Azure DevOps and pass your license key as an environment variable, you can set the value of LIQUIBASE_LICENSE_KEY in your Azure DevOps pipeline setting file:

script: | echo "Running Policy Checks" liquibase checks run --changeLogFile=mysqlChangelog.xml displayName: 'Run Policy Checks' env: LIQUIBASE_LICENSE_KEY: $(LiquibaseKey)

In this example, LiquibaseKey is the name of the Azure DevOps project variable whose value is the license key.

You can directly embed your Liquibase Secure license key (myProLicenseKey) in a custom Java application by following these steps:

  1. In your Maven pom.xml file, point to liquibase-commercial.jar as a dependency: <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-commercial</artifactId> <version>4.33.0</version> </dependency>

  2. In your custom Java file, import the following: import com.datical.liquibase.ext.config.LiquibaseLabsConfiguration;

  3. In your custom Java file, call on the LiquibaseLabsConfiguration class. For example, to specify your license key so that you can run the Liquibase Secure update-one-changeset command: Scope.child(LiquibaseLabsConfiguration.LICENSE_KEY.getKey(), "myProLicenseKey", () -> new CommandScope(UpdateOneChangeSetSqlCommandStep.COMMAND_NAME) .addArgumentValue(DbUrlConnectionArgumentsCommandStep.DATABASE_ARG, liquibase.getDatabase()) .addArgumentValue(DatabaseChangelogCommandStep.CHANGELOG_FILE_ARG, "/db_schema/changelog.xml") .addArgumentValue(UpdateOneChangeSetCommandStep.CHANGESET_AUTHOR_ARG, "fl") .addArgumentValue(UpdateOneChangeSetCommandStep.CHANGESET_ID_ARG, "1") .addArgumentValue(UpdateOneChangeSetCommandStep.CHANGESET_PATH_ARG, "/db_schema/changelog.xml") .execute() );

For information on running Liquibase commands in Java files, see liquibase.command.CommandScope.

4

Add Liquibase to your system PATH.

To run Liquibase commands from any terminal window, you must add the Liquibase to your system PATH. For detailed instructions, macOS, Linux, and Unix users can use this guide to adding a directory to your PATH.

When following the guide, be sure to add the export line to your shell config file.

~/.zshrc if you're using Zsh (default on macOS 10.15+)

~/.bashrc or ~/.bash_profile if you're using Bash (common on Linux and other Unix systems)

Be sure to replace /usr/local with the path to your Liquibase installation.

Example line to add:

export PATH="$PATH:/usr/local/liquibase"

After saving the file, apply your changes by restarting your terminal or running:

source ~/.zshrc # or ~/.bashrc

5

Verify Liquibase has been added to your system PATH.

Once added, open a new Command Prompt and run:

liquibase --version

If it returns the version number, Liquibase is installed and ready to use.