We are pleased to announce the general availability of RPM and Debian native distributions for Gerrit Ver. 2.10. They have been packaged from the original Gerrit WAR using the new native installers tools developed and contributed back to the Gerrit community.
Why yet another packaging format?
Gerrit Code Review has always been released as pure Java executable WAR that has then to be invoked with a target installation directory. This style of packaging has been working fine right now, however many companies use the Linux native software packaging tool to standardise the way they install and update software.
The reasons behind that choice are:
- automatic compatibility matrix and dependencies tracing and resolution: Gerrit dependencies are automatically checked and download upon installation
- automatic update of the latest patch-set released on Gerrit using “yum update” or “apt-get install –only-upgrade”
- out-of-the-box support for Puppet / Chef for unattended installations
- compliance with company standards: system administrators do not have to manage a “special case” for Gerrit
What type of packages are provided?
The following two packaging formats are currently supported:
– RPM packages for RedHat / CentOS Linux distributions
– Deb packages for Ubuntu or other Debian distributions
How to enable Gerrit native packages on my Linux system?
Gerrit packages are distributed using the native repository distribution system provided by the Linux distribution:
- YUM repository for RedHat / CentOS
- Debian source for Ubuntu
To facilitate the set-up, GerritForge provided an RPM for RedHat / CentOS that will do the job for you:
rpm -i https://gerritforge.com/gerritforge-repo-1-2.noarch.rpm
On Ubuntu 14.x up to 16.x / Debian you need to define the extra source pointing to the GerritForge distribution site:
echo "deb mirror://mirrorlist.gerritforge.com/deb gerrit contrib" > /etc/apt/sources.list.d/gerritforge.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1871F775 apt-get update
On Ubuntu 18.x or alter you need to define a specific source pointing to the GerritForge distribution site with higher security keys and hashing requirements:
echo "deb mirror://mirrorlist.gerritforge.com/bionic gerrit contrib" > /etc/apt/sources.list.d/gerritforge.list apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 847005AE619067D5 apt-get update
Once the additional distribution repository has been configured, installing Gerrit 2.10 and all future versions will be just one command away and can be completely automated.
Simpler or more complex than Gerrit init wizard?
The complexity of a native packaging system is all concentrated in the first repository set-up, however it is aligned with any other type of repository additions that System Administrators are very familiar with.
Once the repository set-up phase is finalised, then installing a working version of gerrit is just one command away:
On RedHat / CentOS you simply need to execute:
yum install -y gerrit
On Ubuntu / Debian the command is:
apt-get install gerrit
Additional once configured for production, the configuration files are kept across updates and you can get constantly aligned with the most updated patch-level for your installation.
Gerrit then appears in the list of the installed software alongside with its version number and patch-level.
What is the Gerrit default configuration for native packaging?
Gerrit comes out-of-the-box with a “playground-style” configuration, to allow to have a working instance that can be verified without the need of any extra configuration step:
- H2 Database
- DEVELOPMENT_BECOME_ANY_ACCOUNT authentication
- HTTP (no SSL) and SSH protocols
Once installed, the System Administrators will need to go through the Gerrit documentation and configure the authentication, security protocols and DB of choice. All configuration settings will remain local and will be kept across package upgrades.
Who is hosting Gerrit native packages?
Gerrit native packaging hosting follows the typical strategy of the native distribution sites: a list of mirrors that will be automatically chosen by the Linux installer based on speed and location.
We currently have two mirrors:
- dl.bintray.com – kindly offered by JFrog
- gerritforge.com – kindly offered by GerritForge
The list of sources can be extended as the native packaging systems allow to define a set of mirrors that are automatically selected based on your location and speed.
If anyone is willing to host a mirror of those native packages, please contact GerritForge or post a message on the Gerrit mailing list and we’ll update the official list of mirrors available.
How to tailor Gerrit native packages for your Company?
Gerrit RPM and Deb packages are built using 100% OpenSource tools and scripts published. Just checkout the gerrit-installer project and make the packages again defining your desired version, organisation and distribution URLs.
What’s next?
We are going to publish soon more native packaging formats:
- Docker (coming very soon)
- MacOS Pkg
- Windows MSI
Stay tuned and let us know what do you think.