| title | Download and verify |
|---|
Apache Ranger is distributed as a source tarball, as binary tarballs for each service and plugin, as Docker
images and as Maven artifacts. All releases are made under the
Apache License, Version 2.0; the LICENSE and NOTICE files in
each artifact list the terms of the bundled third-party components.
Whatever you download, verify it. Every file published by the project comes with a detached OpenPGP signature
(.asc) and a checksum file (.sha512, and .sha256 for the source tarball). The signing keys are in the
project's KEYS file. Verification takes a minute and protects you from a corrupted mirror or a tampered file.
The current stable release is Apache Ranger 2.9.0 (August 8, 2026); see the 2.9.0 release notes. Download it from the ASF download server, which serves the closest mirror:
| Artifact | Link |
|---|---|
| Source | apache-ranger-2.9.0.tar.gz (asc, sha512, sha256) |
| Services | services/ — admin, usersync, tagsync, kms, pdp |
| Plugins | plugins/ — atlas, elasticsearch, hbase, hdfs, hive, kafka, knox, kylin, ozone, presto, schema-registry, solr, sqoop, storm, trino, yarn |
| Tools | tools/ — migration-util, ranger-tools, sample-client, solr_audit_conf |
| Everything | downloads.apache.org/ranger/2.9.0/ |
Binary tarballs follow the naming pattern ranger-<version>-<component>.tar.gz, for example
services/admin/ranger-2.9.0-admin.tar.gz and plugins/hive/ranger-2.9.0-hive-plugin.tar.gz. Each sits next to
its .asc and .sha512 files. Binary tarballs have been published for 2.6.0 and later (the pdp service and the
trino plugin from 2.9.0); for older releases build them from the source tarball.
Previous releases are listed on the Releases page. Every release ever made, including the incubating ones, stays available at archive.apache.org/dist/ranger/ and archive.apache.org/dist/incubator/ranger/.
Signatures and checksums must always be fetched from the ASF servers (downloads.apache.org or
archive.apache.org), not from a mirror, so that a compromised mirror cannot serve matching fake files.
The KEYS file contains the public keys of all Ranger release managers:
curl -O https://downloads.apache.org/ranger/KEYS
gpg --import KEYSThe same file is available from https://dist.apache.org/repos/dist/release/ranger/KEYS. Release announcement
emails name the key used for that release; you can show a key's fingerprint with gpg --fingerprint <key-id>.
Because you import keys from a file rather than through a web of trust, gpg will report the signature as good
but the key as not certified; that warning is expected.
export RANGER_VERSION=2.9.0
curl -O https://downloads.apache.org/ranger/${RANGER_VERSION}/apache-ranger-${RANGER_VERSION}.tar.gz
curl -O https://downloads.apache.org/ranger/${RANGER_VERSION}/apache-ranger-${RANGER_VERSION}.tar.gz.asc
gpg --verify apache-ranger-${RANGER_VERSION}.tar.gz.asc apache-ranger-${RANGER_VERSION}.tar.gzA successful check prints Good signature from "<release manager>". Any other result means the file must not be
used.
For releases from 2.5.0 onward the .sha512 file is produced with sha512sum, so it can be checked directly:
=== "Linux"
```bash
curl -O https://downloads.apache.org/ranger/${RANGER_VERSION}/apache-ranger-${RANGER_VERSION}.tar.gz.sha512
sha512sum -c apache-ranger-${RANGER_VERSION}.tar.gz.sha512
```
=== "macOS"
```bash
curl -O https://downloads.apache.org/ranger/${RANGER_VERSION}/apache-ranger-${RANGER_VERSION}.tar.gz.sha512
shasum -a 512 -c apache-ranger-${RANGER_VERSION}.tar.gz.sha512
```
The source tarball also ships a .sha256 file; sha256sum -c (or shasum -a 256 -c) checks it the same way.
Repeat steps 2 and 3 for every binary tarball you download.
!!! note "Older releases"
The `.sha512` files of releases 2.0.0 through 2.4.0 are in `gpg --print-md SHA512` format (upper-case hex in
groups), which `sha512sum -c` cannot read. For those, run `gpg --print-md SHA512 apache-ranger-<version>.tar.gz`
and compare the output with the file. The 2.2.0 checksum files are named with an upper-case extension,
`apache-ranger-2.2.0.tar.gz.SHA512` and `.SHA256`. Releases 0.4.0 through 0.7.0 (except 0.6.3) have no
`.sha512` file; their digests are in a single `.mds` file (`gpg --print-mds` output), so compare the matching
line with `gpg --print-md SHA512 <file>` or `gpg --print-md SHA1 <file>`.
Official images are published to Docker Hub under the apache organization for each release from 2.4.0 onward.
The release manager builds them from the dev-support/ranger-docker Dockerfiles at the release tag; see
Release process.
| Image | Purpose | Tags |
|---|---|---|
| apache/ranger | Ranger Admin | 2.4.0 … 2.9.0 |
| apache/ranger-db | PostgreSQL database initialized for Ranger | same as apache/ranger |
| apache/ranger-solr | Solr with the ranger_audits collection |
same as apache/ranger |
| apache/ranger-zk | ZooKeeper for Solr | 2.4.0 … 2.8.0 (no 2.9.0 tag has been published) |
| apache/ranger-base | Base image (OS + JDK) used to build and run the other images | <date>-<n>-<jdk>, for example 20260806-2-17 |
The images are not signed; pull them by version tag rather than latest and check the image digest shown by
Docker Hub. The quick-start below, from the cwiki page
Run Ranger in Docker using DockerHub images,
starts Ranger Admin with its PostgreSQL, Solr and ZooKeeper dependencies:
export RANGER_VERSION=2.9.0
export RANGER_ZK_VERSION=2.8.0
docker pull apache/ranger-zk:${RANGER_ZK_VERSION}
docker pull apache/ranger-solr:${RANGER_VERSION}
docker pull apache/ranger-db:${RANGER_VERSION}
docker pull apache/ranger:${RANGER_VERSION}
docker network create rangernw
docker run -d --name ranger-zk --hostname ranger-zk.example.com --network rangernw -p 2181:2181 \
apache/ranger-zk:${RANGER_ZK_VERSION}
docker run -d --name ranger-solr --hostname ranger-solr.example.com --network rangernw -p 8983:8983 \
apache/ranger-solr:${RANGER_VERSION} solr-precreate ranger_audits /opt/solr/server/solr/configsets/ranger_audits/
docker run -d --name ranger-db --hostname ranger-db.example.com --network rangernw \
--health-cmd='su -c "pg_isready -q" postgres' --health-interval=10s --health-timeout=2s --health-retries=30 \
apache/ranger-db:${RANGER_VERSION}
docker run -d --name ranger --hostname ranger.example.com --network rangernw \
-e RANGER_VERSION=${RANGER_VERSION} -e RANGER_DB_TYPE=postgres -p 6080:6080 \
apache/ranger:${RANGER_VERSION} /home/ranger/scripts/ranger.shRanger Admin is then available at http://localhost:6080/ (user admin, password rangerR0cks!). To run the
full stack with plugins, or to build images from a source checkout, use the compose files in
dev-support/ranger-docker.
Ranger libraries are published to Maven Central under the group org.apache.ranger, with the release version
as the artifact version. Releases 0.6.0 through 2.9.0 are available; artifacts for a new release are deployed
during the release process, so check
repo1.maven.org/maven2/org/apache/ranger/ if the version
you need is not there yet.
Artifacts you are most likely to depend on:
| Artifact | Contents |
|---|---|
ranger-plugins-common |
Policy engine, RangerBasePlugin, policy refresher, RangerAccessRequest/RangerAccessResult |
ranger-plugins-audit (up to 2.6.0) / ranger-audit-dest-solr, ranger-audit-dest-hdfs, ranger-audit-dest-es, ranger-audit-dest-kafka, ranger-audit-dest-log4j, ranger-audit-dest-cloudwatch (2.7.0 and later) |
Audit framework and destinations; see the 2.7.0 breaking changes |
ranger-intg |
Java client for the Ranger Admin REST API (RangerClient) |
ranger-authz-api, authz-embedded |
Component-neutral authorization API and embedded authorizer (2.8.0 and later) |
ranger-<component>-plugin, ranger-<component>-plugin-shim |
Per-component authorizers and their shim classes (hdfs, hive, hbase, kafka, knox, solr, ozone, trino, …) |
ranger-plugin-classloader |
Classloader used by the shims to isolate plugin dependencies |
ranger-kms, ranger-tagsync, unixusersync, security-admin-web |
Service modules |
<dependency>
<groupId>org.apache.ranger</groupId>
<artifactId>ranger-plugins-common</artifactId>
<version>2.9.0</version>
</dependency>The Python client is published to PyPI as apache-ranger
(pip install apache-ranger); its source is in intg/src/main/python of the repository.
Every release since 0.7.1 is tagged in the Git repository as release-ranger-<version>
(https://github.com/apache/ranger/tags); the tag matches the contents of the source tarball. Release branches
are named ranger-<major>.<minor>, for example ranger-2.9. To build a release from source:
git clone https://github.com/apache/ranger.git
cd ranger
git checkout release-ranger-2.9.0
mvn clean package -DskipTestsThe build writes the same ranger-<version>-<component>.tar.gz files that are published in the services/,
plugins/ and tools/ directories to target/.
- Releases — every release with dates and links.
- Release process — how artifacts are built, signed and published.
- Installation overview — choosing between tarballs, Docker and building from source.
- ASF release signing guide and verifying downloads.