Repositories für CentOS 7: EPEL, IUS, Atomicorp, SCL und Remi

Wie das EPEL-Repository auf CentOS 7 oder RHEL 7 installiert wird, wissen die meisten. Aber welche anerkannten Repos gibt es noch? Was bieten diese? Wie bezieht man Software aus dem passenden Repo? Wie ersetzt man eine Basis-Software durch eine aus einem anderen Repository?

Erweiterter Umgang mit yum

Welche Repos sind lokal aktiv?

yum repolist

Umgang mit parallel installierten Repos

So schränkt man die Suche auf ein bestimmtes Repository ein:

yum --disablerepo="*" --enablerepo="epel" list
yum --disablerepo="*" --enablerepo="epel" list installed
yum --disablerepo="*" --enablerepo="epel" list available
yum --disablerepo="*" --enablerepo="epel" list httpd

So installiert man nur aus einem bestimmten Repository:

yum --disablerepo="*" --enablerepo="centos-sclo-rh" install rh-php70

yum-config-manager installieren

yum -y install yum-utils

Upgrade installierter Versionen

Wer beispielsweise einen installierten Dovecot 2.2.10 (egal aus welchem Repo) durch eine neuere Version aus einem anderen Repository ersetzen will, muss dessen neuen alternativen Namen kennen und führt das hier aus:

dovecot -v
yum swap dovecot dovecot22u
dovecot -v

base, extras, updates

Das sind die bei CentOS 7 standardmässig aktivierten Software-Repositories. extras bietet Pakete, die nützlich sein können, aber für den Betrieb nicht unbedingt erforderlich sind.

CentOS SCL

SCL stammt aus dem CentOS-Projekt und steht für „Software CoLlections“. SCL ermöglicht es, mehrere Versionen einer Software auf einem System zu bauen, zu installieren und zu verwenden, ohne systemweit installierte Pakete zu tangieren. Die einzelnen Software-Versionen werden je „Collection“ genannt und sind per Namens-Präfix zu einer Gruppe von RPM-Dateien zusammengefasst. Über das Kommando scl enable <collection-name> bash wird die virtuelle Umgebung für das gewünschte Paket gestartet.

SCL sollte dann verwendet werden, wenn man beispielsweise PHP 5.4 und PHP 7.2 auf einer Maschine parallel fahren und jederzeit umschalten möchte. Kann darauf verzichtet werden, wählt man die Installation aus einem Repo, welches in dem Fall PHP systemweit ersetzt.

Die enthaltenen Pakete sind (inzwischen) recht aktuell; zusätzlich gibt es einige Software-Kollektionen als Docker Formatted Container. Stand 2020-09 stehen im SCL unter anderem Versionen folgender Softwarepakete zur Verfügung:

  • MariaDB 10.3

  • Maven 3.5

  • MongoDB 3.4

  • nginx 1.14

  • NodeJS 10

  • PHP 7.2

  • PostgreSQL 9.6

  • Python 3.6

Links:

Auf CentOS:

yum -y install centos-release-scl

Auf RHEL:

yum-config-manager --enable rhel-server-rhscl-7-rpms

Verwendung

Beispiel anhand von Python:

yum install rh-python36
# runs bash instance with rh-python36 Software Collections enabled
scl enable rh-python36 bash
python --version
exit
python --version

Beispiel für PHP 7.1:

yum install rh-php71 rh-php71-php-devel
scl enable rh-php71 bash
php my-app.php

Anschauen, was SCL für Python liefert:

yum list rh-python36\*

Atomic / Atomicorp

Atomicorp ist der Lieferant des kostenpflichtigen „Atomic Secured Linux“ (ASL). Darüber hinaus stellen sie für Fedora, RHEL, CentOS, Amazon Linux, OpenSUSE, Debian, Ubuntu und Kali einige Pakete in dem hier vorgestellten Repo kostenlos zur Verfügung. Das Repository ist unter anderem für die Installation von OpenVAS oder OSSEC hilfreich.

Links:

wget -q -O - https://www.atomicorp.com/installers/atomic | sh

EPEL

Das von der Fedora-Community gepflegte „Extra Packages for Enterprise Linux“ (EPEL) ist mit Abstand eines der bekanntesten Software-Repos. Es erweitert RHEL, CentOS und Scientific Linux in den Versionen 4 bis 8 um viele dort nicht als Pakete lieferbare Anwendungen und Treiber. Aber Achtung: nicht jedes Paket wird für jedes Major-Release gepflegt - so gibt es durchaus Pakete, die beispielsweise nur für CentOS 7 verfügbar sind, wie Cinnamon.

Seit September 2014 ist das epel-release-Paket direkt im „CentOS Extras“ Repository integriert und daher unter CentOS einfach per Yum installierbar.

EPEL liefert unter anderem Pakete für bekannte Software-Grössen wie Ceph, Drupal, Mono, Nagios, OpenVPN, Puppet, R oder Wine. Red Hat gibt auf aus dem EPEL-Repository installierte Pakete keine Garantie oder Support.

Auf der RepoView-Seite für EPEL lässt sich erkunden, welche Pakete verfügbar sind und wann sie aktualisiert wurden.

Links:

Die Installation des EPEL-Repos setzt ein aktiviertes CentOS Extras Repository voraus.

yum -y install epel-release

IUS

Das IUS Community Project stellt RPM-Pakete für neuere Versionen ausgewählter Software zur Verfügung. IUS bedeutet „Inline with Upstream Stable“. Es wird bevorzugt für die aktuellste Python3-Version verwendet, liefert aber auch dovecot, git, haproxy, httpd, MariaDB oder PHP in sehr aktuellen Versionen.

IUS bietet „Safe Replacement Packages“ und „Parallel Installable Packages“.

yum -y install https://centos7.iuscommunity.org/ius-release.rpm

Ist ein Paket wie beispielsweise Redis aus dem Standard- oder EPEL-Repository installiert, muss es vorher deinstalliert werden. Danach:

yum -y install redis30u

Remi

Remi richtet sich an alle, die einen modernen PHP-Stack benötigen. Es liefert alle aktuellen PHP-Versionen (5.6, 7.0, 7.1) plus die dazu notwendigen Module und Tools.

Achtung: Remi verwendet die gleichen Paketnamen wie die offiziellen Repos - das kann zur Verwirrung führen, besonders, wenn im Standard-Repo PHP-Module verfügbar sind, für eine neuere PHP-Version aus dem Remi-Repo jedoch gar nicht oder nicht mehr.

Remi setzt das EPEL-Repository voraus.

yum -y install epel-release http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Aufgrund der Namensgleichheit ist besondere Sorgfalt bei der Software-Installation empfohlen, d.h. man arbeitet mit yum-config-manager, um die passenden Repos ein- und unpassende auszuschalten. Am Beispiel der Installation von PHP:

yum-config-manager --enable remi-php70
yum -y install php

Wer von PHP 7.0 auf 5.6 downgraden möchte:

yum remove php
yum-config-manager --disable remi-php70
yum-config-manager --enable remi-php56
yum -y install php

Hersteller-Repos

Immer öfters bieten die Projekte eigene Repos an, wie beispielsweise Elasticsearch, Graylog, Icinga2, MariaDB oder MongoDB, aus denen die neueste Software frisch und direkt vom Hersteller bezogen werden kann.