You are here

IPS Mediated Links

Primary tabs

Mediated links allow switching system-wide between different software versions.

For instance, we may need to switch between different versions of GCC.

Each version lives in /usr/gcc/$(GCC_VERSION) but default version has symlinks in /usr.

List software using mediated links:

helios> pkg mediator
MEDIATOR    VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
apache      vendor    2.2     vendor     
automake    system    1.15    system     
clang       system    3.4     system     
firefox     system    44      system     
ftpd        system            system     proftpd
gcc         local     4.9     system     
mta         system            system     mailwrapper
mysql       system    5.5     system     mariadb
openssl     vendor            vendor     default
perl        system    5.22    system     
postgres    system    9.3     system     postgresql
python      vendor    2.6     vendor     
qt          system    4.8     system     
ruby        vendor    1.9     vendor     
samba       vendor            vendor     4
ssh         system            system     sunssh
system-perl system    5.22    system     
thunderbird system    38      system     

List versions available for a given software:

helios> pkg mediator -a gcc
MEDIATOR    VER. SRC. VERSION IMPL. SRC. IMPLEMENTATION
gcc         system    4.9     system     
gcc         system    4.8     system   

Choose a version:

helios> pfexec pkg set-mediator -V 4.9 gcc
AVERTISSEMENT : l'environnement d'initialisation en cours de modification
n'est pas le BE actif. Les modifications effectuées ne seront pas répercutées
sur le prochain démarrage.

                                  Packages à modifier :   1
                               Médiateurs à modifier :   1
              Créer un environnement d'initialisation : Non
Créer un environnement d'initialisation de sauvegarde : Oui
PHASE                                       ELEMENTS
Mise à jour des actions modifiées            11/11
Mise à jour de la base de données d'état des packages    Terminé 
Mise à jour du cache de packages                0/0 
Mise à jour de l'état des images          Terminé 
Création d'une base de données de recherche rapide    Terminé 
Lecture de l'index de recherche             Terminé 
Mise à jour de l'index de recherche             1/1 

helios> gcc --version
gcc (GCC) 4.9.3
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Package software with mediated links

Mediated links should have attributes setting the mediator name and version:

link path=usr/bin/gcc target=../gcc/5.3/bin/gcc mediator=gcc mediator-version=5.3

A transform should be added to set the default version:

#
# Set the default GCC for mediated links
#
<transform link mediator=gcc mediator-version=4.9 -> default mediator-priority vendor>