Install Liquibase with Red Hat or CentOS

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

Open a terminal.

2

Import the Liquibase public key (as root).

rpm --import https://repo.liquibase.com/liquibase.asc
3

Install yum-config-manager.

yum install -y yum-utils
4

Add the remote repo to yum (as root).

yum-config-manager --add-repo https://package.liquibase.com/repo-liquibase-com.repo
5

Install Liquibase.

yum install liquibase-secure

Liquibase is now installed on your system.

Note: To install a specific version of Liquibase using the Red Hat/CentOS package manager, specify the version number like this:

yum install liquibase-x.y.z

Replace x.y.z with the version you want to install. This will install that specific version on your system.

6

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.

7

Alternative to YUM/DNF - Direct RPM download

If you prefer not to configure a YUM repository, you can download the RPM package directly from Liquibase and install it manually.

OSS Package

# Replace 5.0.0 with the version you wantcurl -LO https://package.liquibase.com/downloads/oss/rpm/liquibase-5.0.0.rpmsudo rpm -ivh liquibase-5.0.0.rpm

Secure Package

# Replace 5.0.0 with the version you wantcurl -LO https://package.liquibase.com/downloads/secure/rpm/liquibase-secure-5.0.0.rpmsudo rpm -ivh liquibase-secure-5.0.0.rpm

Notes

  • curl -LO saves the file with the correct filename.

  • Use rpm -Uvh instead of -ivh if you are upgrading an existing installation.

  • Direct RPM download is useful for air-gapped installs or if you don’t want to set up the YUM repo.