edix_developpeur_gentoo_majeur(7f) edix_developpeur_gentoo_majeur(7f)

edix_developpeur_gentoo_majeur - Modification majeure (par un développeur) des logiciels administrés via gentoo

La page de manuel edix_developpeur_gentoo(7f) décrit les deux types de mise à jour gentoo qui existent. Nous nous intéressons ici à la seconde, dite "majeure" car elle implique un changement de la base de donnée des paquets gentoo et une recompilation de l'ensemble du système.

On admet que le développeur a le nom d'utilisateur lamenaire sur une machine linux où il a chrooté l'image de référence et s'est connecté en tant que lafrier sur cette image (voir edix_developpeurs(7f)).

La procédure décrite ci-dessous ne fonctionnera jamais sans ajustement. Il est ici question de ce que la gestion d'un système d'exploitation a de plus délicat, notamment en termes d'interdépendance de chacune des briques logicielles du système. Vous recontrerez des problèmes de conflit qu'il faudra régler de façon ad-hoc à l'aide des ressources proposées par la communauté gentoo.

On passe sur le chroot en tant que lafrier et on commence par faire une mise à jour usuelle, comme le ferait l'administrateur d'une machine clone.

Voir edix_mise_a_jour(7f).

Aller dans /home/lafrier/edix/configuration.txt et mettre des "no" devant toutes les options de configuration :

lafrier:~ $ vim /home/lafrier/edix/configuration.txt
vim:

nolatex
nomath
nobureautique
noblob_office
nolaplace
noportable
nosyrthes
novirtuel

Puis relancer une mise à jour gentoo mineure :

lafrier:~ $ doas mise_a_jour_systeme_gentoo.sh

Enfin, stabiliser python avec

lafrier:~ $ doas emerge -1vUD @world

Le fait de réduire la configuration au minimum permettra que les premiers essais de compilation, suite à la mise à jour de la base de donnée des paquets gentoo, ne portent que sur un nombre minimum de paquets.

RQ: Dans les étapes de compilation suivantes, si vous observez que cela ne suffit pas, c'est à dire que certains conflits dans les paquets empêchent la compilation et que vous ne parvenez pas à les résoudre, alors vous pourrez ouvrir le fichier /var/lib/portage/world et commenter les paquets qui vous semblent les moins prioritaires jusqu'à obtenir une compilation sans conflit.

lafrier:~ $ doas emerge --sync

Si c'était le cas, il s'agirait de

lafrier:~ $ doas emerge -1vUD @world

RQ : La dernière tentative n'a pas fonctionnée

lafrier:~ $ doas emerge -av --oneshot sys-apps/portage

lafrier:~ $ doas mise_a_jour_systeme_gentoo.sh

Puis dans le fichier /home/lafrier/edix/configuration.txt, on rajoute graduellement toutes les possibilités de configuration, par exemple on remplace nolatex par latex et on relance mise_a_jour_systeme_gentoo.sh. Si tout se passe bien, on remplace nomath par math et on recommence, etc.

Si tout se passe bien, à la fin toutes les options de configuration sont sélectionnées :

lafrier:~ $ vim /home/lafrier/edix/configuration.txt
vim:

latex
math
bureautique
blob_office
laplace
portable
syrthes
virtuel

et on fait la mise à jour gentoo finale :

lafrier:~ $ doas mise_a_jour_systeme_gentoo.sh

Cela permet de vérifier que toutes les options sont opérationnelles (s'assurer qu'il n'y a pas de conflit et que la compilation se passe bien) et cela construit une base de donnée binaire complète.

RQ : Vous pouvez rencontrer un problème de place disque (no space left on device). Dans ce cas vous pouvez tenter la commande suivante :

lafrier:~ $ doas eclean distfiles

lafrier:~ $ doas perl-cleaner --all

lafrier:~ $ doas eclean distfiles

lafrier:~ $ doas eclean packages

A ce stade, tout a été mis à jour sur l'image, pour toutes les configurations disponibles. Cela signifie

  • une nouvelle base de donnée de paquets gentoo (/var/db/repos/gentoo) ;
  • un nouveau jeu de paquets binaires (/var/cache/binpkgs).

Il faut alors déployer ces nouvelles données sur le serveur.

lamenaire:~ $ cd "${EDIXDEVELOPPEUR}"/bin_developpeur
lamenaire:~/edix/bin_developpeur $ doas ./hors_du_chroot_recopie_et_compression_de_var_db_repos_gentoo.sh /tmp
lamenaire:~ $ doas chown lamenaire:lamenaire /tmp/var_db_repos_gentoo.tar.gz
lamenaire:~ $ doas chown lamenaire:lamenaire /tmp/version_var_db_repos_gentoo.txt
lamenaire:~ $ scp /tmp/var_db_repos_gentoo.tar.gz nastar:/nastar/www/Edix/.
lamenaire:~ $ scp /tmp/version_var_db_repos_gentoo.txt nastar:/nastar/www/Edix/.
lamenaire:~ $ cp /tmp/version_var_db_repos_gentoo.txt ${EDIXDEVELOPPEUR}/reference/gentoo/.

puis on commite et on pousse le projet edix.

lamenaire:~ $ cd "${EDIXDEVELOPPEUR}"/bin_developpeur
lamenaire:~/edix/bin_developpeur $ doas ./hors_du_chroot_recopie_et_compression_de_var_cache_binpkgs.sh /tmp
lamenaire:~ $ doas chown lamenaire:lamenaire /tmp/var_cache_binpkgs.tar.gz
lamenaire:~ $ doas chown lamenaire:lamenaire /tmp/version_var_cache_binpkgs.txt
lamenaire:~ $ scp /tmp/var_cache_binpkgs.tar.gz nastar:/nastar/www/Edix/.
lamenaire:~ $ scp /tmp/version_var_cache_binpkgs.txt nastar:/nastar/www/Edix/.
lamenaire:~ $ cp /tmp/version_var_cache_binpkgs.txt ${EDIXDEVELOPPEUR}/reference/gentoo/.

puis on commite et on pousse le projet edix.

On choisit les options de configuration que l'on souhaite retenir pour l'image que l'on distribue sur le web, celle qui sera utilisée par les personnes souhaitant tester edix en bootant sur une clé usb, ou qui souhaiteront installer edix.

Typiquement,

lafrier:~ $ vim /home/lafrier/edix/configuration.txt
vim:

latex
math
bureautique
noblob_office
nolaplace
noportable
nosyrthes
novirtuel

et on fait la mise à jour gentoo pour une image de référence :

lafrier:~ $ doas mise_a_jour_systeme_gentoo.sh

A ce stade, l'image est mise à jour. Par principe, on reprend la configuration des fichiers d'ammorçage. On chroot sur l'image en tant que lafrier et on lance les commandes suivantes :

lafrier:~ $ doas grub-install --target=x86_64-efi --efi-directory=/boot
lafrier:~ $ doas grub-install --target=x86_64-efi --efi-directory=/boot --boot-directory=/boot --removable

Puis on quitte le chroot.

L'image est normalement située dans le répertoire nastar_www_Edix, qui est supposé être un clone du répertoire /nastar/www/Edix sur le nastar. On se place dans ce répertoire et lance la commande de compression suivante :

lamenaire:˜/nastar_www_Edix $ xz -k edix-57G.img

On utilise rsync pour recopier la nouvelle image compressée sur le nastar :

lamenaire:˜/nastar_www_Edix $ rsync -av --delete -e ssh 
--rsync-path=/usr/bin/rsync 
/home/lamenaire/nastar_www_data_Edix/edix-57G.img.xz 
nastar:/nastar/www/Edix/edix-57G.img.xz

edix_developpeur(7f), edix_developpeur_gentoo(7f), edix_mise_a_jour(7f)

2026-04-10 UNIX