2.13 Révisions système¶
- 2.13 Révisions système
- La liste des logiciels installés
- Gérer le fichier world avec les modèles
- Révisions système
La liste des logiciels installés¶
Au fur et à mesure que vous installez des logiciels, un fichier système est formé, qui contient leur liste : /var/lib/portage/world
. Cette liste n'est pas complète, car les dépendances des paquets installés (par exemple, les bibliothèques) n'y figurent pas.
Pour voir comment cela fonctionne, installons le tableur Gnumeric :
emerge -a gnumeric
La commande lancée, le gestionnaire de paquets vous suggérera probablement plusieurs paquets à installer : app-office/gnumeric
lui-même, mais aussi gnome-extra/libgsf
et x11-libs/goffice
, dont le tableur a besoin pour fonctionner. Cependant seul le paquet que vous auriez spécifié en argument de "emerge"/main/en/emerge, app-office/gnumeric
en l'occurence, sera porté sur le fichier world
.
Maintenant, si vous supprimez Gnumeric :
emerge -C gnumeric
la paquet app-office/gnumeric
ne figurera plus sur la liste world
. Par contre, les paquets qui en dépendent resteront intacts.
Pour nettoyer ces dépendances, exécutez
emerge -ac
L'arborescence des paquets sera alors reconstruite à partir de la liste du fichier world
plus les dépendances. Si le gestionnaire détecte des paquets orphelins, il vous proposera de les supprimer.
Gérer le fichier world avec les modèles¶
A partir de Calculate Linux 13, la gestion des paquets est devenue plus souple. Dans les versions précédentes, nous avons utilisé des méta-paquets pour construire l'arborescence des dépendances. Ce dispositif avait l'avantage d'assurer toutes les dépendances requises d'un bloc, tout en évitant le blocage de paquets en conflits, mais il présentait aussi des inconvénients. A chaque nouvelle version d'un méta-paquet, l'utilisateur redoutait des ajouts ou les suppressions forcées de logiciels. Par contre, dégager une application préinstallée n'était pas chose aisée.
Mais les Utilitaires Calculate ont beaucoup évolué depuis et peuvent désormais modifier le fichier world
, ce qui nous a permis de renoncer aux méta-paquets. Lors de la synchronisation de l'arbre Portage et de l'overlay, contenant les templates, avec eix-sync
, l'outil cl-core
est lancé, qui, à son tour, traite les
Les modèles permettent de (re)définir les logiciels fournis par défaut compte tenu de toutes les modifications. En cas de remplacement, par exemple, le nouveau paquet écrasera celui qu'il remplace dans le fichier world
.
La version actuelle du fichier world
est consultable dans /etc/calculate/ini.env
. Elle est notée comme suit :
[update] world = 22
Les modèles qui gèrent la liste des paquets sont, pour l'instant, consultables à :
/var/lib/layman/calculate/profiles/templates/3.1/6_ac_update_sync/world/Ces modèles se classent en deux grandes catégories :
- ceux qui regénèrent le fichier
world
à partir de zéro ; - ceux qui mettent à jour le
world
courant, en supprimant, en remplaçant ou en ajoutant des paquets.
Les modèles sont également triés par fonction (à savoir graphics
, network
, multimedia
...).
Chaque modèle décrit les règles de mise à niveau pour chaque version, comme suit :
# supprimer geeqie sur CLD #?os_linux_shortname==CLD# !media-gfx/geeqie #os_linux_shortname# # ajouter catfish sur CLDX #?os_linux_shortname==CLDX# dev-util/catfish #os_linux_shortname# # remplacer chromium avec firefox #?pkg(www-client/chromium)!=# www-client/firefox #pkg#
Vous pouvez également utiliser la commande
cl-update --update-rev
pour mettre le fichier
world
à jour à la main.
Pour regénérer le fichier world
sans prendre en compte les paquets installés, lancez :
cl-update --rebuild-world
Pour regénérer world
en tenant compte du journal d'installation et non pas des paquets préinstallés :
regenworld
Révisions système¶
Avec les nouveaux dispositifs de génération du fichierworld
, les corrections ne sont plus validées comme avant, non plus. Dans les versions précédentes de CL, elles intervenaient pendant les mises à jour, donnant souvent du fil à retordre, vu que :
- Des nouvelles révisions de paquets (généralement de méta-paquets) étaient proposées pour corriger lors d'une mise à niveau.
- La réinstallation d'un méta-paquet terminée, les modèles étaient réappliqués pour apporter les corrections nécessaires.
- Si la correction devait être effective avant la mise à jour d'un ou des paquets spécifiques, des révisions étaient créées pour ces paquets même si ceux-ci n'étaient aucunement impliqués.
- Il était impossible de corriger un bogue avant de réinstaller le paquet défaillant.
Dans les nouvelles versions de Calculate, les bogues sont corrigés et les réglages modifiés avec la commande cl-udpate --update-rev
. Elle est lancée automatiquement chaque fois que vous faites eix-sync et ne dépend d'aucun paquet.
Toutes les corrections sont contenues dans les modèles de révision, à 6_ac_update_sync/revision
. Cela peut être un script à exécuter, mais aussi une liste de paquets à réajuster. Ces modifications ne sont valables que pour une révision bien précise.
Sur une Calculate Linux installée, le numéro de la révision système actuelle est stocké dans le fichier /etc/calculate/ini.env
, pour éviter qu'une même modification soit validée à plusieurs reprises.
Un autre avantage de cette approche est que la mise à jour des postes de service et la création d'une image ISO obéissent à une même logique. Résultat, moins d'erreurs invisibles dans les stages hebdomadaires, mais révélées après une mise à jour malencontreuse.