26 août 2018

Software Collections - SCLs

UPDATE 2020:
SCL n'est utilisé que pour RHEL/CentOS 5/6/7
Depuis la version 8 SCL est remplacé par les 'Modules Stream'. Un Stream étant une sorte de  dépôt virtuel dans le dépôt principal.

 
 Depuis 2013 Fedora propose le service en ligne COPR (Cool Other Package Repositories). Ce service permet  de gérer son propre dépôt, non pas chez soi, mais sur les serveurs de Fedora. Les packages de votre repo sont donc accessibles à tout le monde.

Sur la base de COPR est né SCLs (Software Collections) qui héberge des collections de packages pour Red Hat Enterprise Linux et son écosystème : Fedora, CentOS, et Scientific Linux.
Le principal but de ces collections est de proposer des versions récentes de certains logiciels incontournables (Apache, Git, Perl, Php, PostgreSQL...) plusieurs années avant qu’elles n’entrent officiellement dans les dépôts de ces distributions Linux.

Exemple : En Juillet 2018 la version la plus récente de Apache est 2.4.34
dans centos-sclo-rh on a 2.4.27 (Juillet 2017)
dans le dépôt de base de Centos 7.5 on a Apache 2.4.6 (Juillet 2013)

Pour installer le repository SCL :

# yum install centos-release-scl
Quels sont les repositories installés :

# yum repolist | grep scl
repo id                 repo name             status
centos-sclo-rh/x86_64   CentOS-7 - SCLo rh    7,984
centos-sclo-sclo/x86_64 CentOS-7 - SCLo sclo    767

On peut consulter la liste des packages proposés par SCL ici : https://www.softwarecollections.org/en/scls/
ou faire une requête avec yum
# yum --disablerepo='*' --enablerepo='centos-sclo*' list available

Exemple Installation de Apache 2.4.x
# yum install httpd24
# systemctl start  httpd24-httpd
# systemctl status httpd24-httpd
# systemctl enable httpd24-http

scl-utils

Quand on installe des packages venant de SCLs le package scl-utils est aussi automatiquement installé, ce qui installe la commande ‘scl’. Cette commande permet de gérer en parallèle la version installée depuis SCLs et la version officielle. En effet, pour éviter les conflits, les logiciels installés par  SCLs s’installent dans /opt/rh/*.  La commande scl permet de passer d’un version à l’autre.

Si vous avez installé python37 depuis SCLs
# python –V
Python 2.7.5 
# scl enable python36 bash
# python -V 
Python 3.6.3
 on obtient une session bash avec python 3.6.3 actif
# exit
on est revenu a la session bash d'origine
# python –V
Python 2.7.5

Plus d'info: https://access.redhat.com/documentation/en-us/red_hat_software_collections/