Utiliser Gentoo et Calculate Linux

Gentoo : Paramétrer les dépôts binaires

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction



Bien que Gentoo soit une distribution dite "From source", où l'ensemble des paquets sont en réalité les code sources qui sont compilé sur votre machine, il est possible d'installer des paquets déjà précompilés.
Depuis Décembre 2023, Gentoo propose officiellement des paquets binaires.

Cela peut être très utile pour réaliser une installation rapide du système dans un premier temps puis de recompiler ensuite tout le système ou pour des paquets qui nécessitent beaucoup de temps et de ressources pour se compiler (coucou webkit-gtk ou chromium). Ainsi, même des configurations modestes pourront faire tourner Gentoo rapidement et sans soucis en profitant la flexibilité de cette distribution.

Prérequis



Dans un premier temps, on va paramétrer portage pour l'informer du dépôt binaire à utiliser.

Créer s'il n'existe pas, le dossier propre aux dépôts binaires :
Code BASH :
mkdir /etc/portage/binrepos.conf/


Ensuite, créer un fichier gentoobinhost.conf et y renseigner le dépôt binaire :
Code BASH :
vim /etc/portage/binrepos.conf/gentoobinhost.conf


On pourra utiliser le CDN de Gentoo (usage polyvalent) :
Code :
[binhost]
priority = 9999
sync-uri = https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64-v3/


Ou bien un miroir spécifique pour avoir de meilleures performances (liste des miroirs locaux dispo ici https://www.gentoo.org/downloads/mirrors/ ) :
Code :
[binhost]
priority = 9999
sync-uri = https://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/releases/amd64/binpackages/23.0/x86-64-v3/

J'ai choisi le dépôt allemand Esslingen qui va toujours très vite chez moi.

Après l'URL https://distfiles.gentoo.org/releases , sélectionnez bien :
- Votre architecture (amd64 = 64bits, x86 = 32bits, arm64, etc...)
- le dossier binpackages
- La version du profil que vous utilisez (ici 23.0)
- La spécificité de votre installation *

* Dans la plupart des cas en 64 bits, c'est x86_64 (si vous avez une config particulière avec musl par exemple, vous devriez le savoir). Vous pouvez prendre le x86_64-v3 si votre processeur le supporte. Vous pouvez le vérifier avec :
Code BASH :
ld.so --help

Code :
Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)



Utiliser les binaires



Informations sur les binaires



Il y a 2 possibilité d'utiliser les binaires s'ils sont mis à disposition : systématiquement ou ponctuellement

Il existe un code couleur spécifique pour les paquets.
Ceux qui se compilent sont notés "ebuild" et écrits en vert :

emerge-ebuild



Les binaires sont notés "binary" et écrits en violets, ce qui permet de les distinguer visuellement.

emerge-binary



Utiliser les binaires ponctuellement



Dans le cas d'une opération avec emerge (Installation d'un nouveau logiciel, mise à jour du système), on utilisera l'option --getbinpkg (ou en option courte -g) :

Code BASH :
emerge -avg app-editors/nano


Si un binaire est présent et disponible avec les USEFLAGS paramétrés sur notre système, il sera récupéré et instrallé :

Code :
Calculating dependencies           ... done!             
Dependency resolution took 3.10 s (backtrack: 0/20).
[binary  N     ] app-editors/nano-8.0-2::gentoo  USE="ncurses nls spell (unicode) -debug -justify -magic -minimal" 610 KiB
Total: 1 package (1 new, 1 binary), Size of downloads: 610 KiB
Would you like to merge these packages? [Yes/No] 




Utiliser les binaires systématiquement



Pour récupérer systématiquement des binaires s'ils sont disponibles, on pourra activer dans portage la fonctionnalité getbinpkg.

Editer pour cela le fichier make.conf :
Code BASH :
vim /etc/portage/make.conf


Et ajouter (ou compléter si elle est déjà présente) l'option dans la variable FEATURES :
Code BASH :
FEATURES="getbinpkg"


Ensuite, une installation ou mise à jour classique ira chercher les binaires dispo.


Erreurs connues



Si vous avez une erreur de vérification des paquets binaires, j'ai eu ce type de message :

Code TEXT :
!!!
gpg: keyblock resource '/etc/portage/gnupg/pubring.kbx': No such file or directory
[GNUPG:] ERROR add_keyblock_resource 33587281
[GNUPG:] PLAINTEXT 74 0 
[GNUPG:] NEWSIG
gpg: Signature made dim. 23 juin 2024 12:31:06 CEST
gpg:                using RSA key 534E4209AB49EEE1C19D96162C44695DB9F6043D
[GNUPG:] ERROR keydb_search 33554445
[GNUPG:] ERROR keydb_search 33554445
[GNUPG:] ERRSIG 2C44695DB9F6043D 1 10 01 1719138666 9 534E4209AB49EEE1C19D96162C44695DB9F6043D
[GNUPG:] NO_PUBKEY 2C44695DB9F6043D
gpg: Can't check signature: No public key
[GNUPG:] FAILURE gpg-exit 33554433
gpg: can't create `/etc/portage/gnupg/random_seed': No such file or directory
!!! Invalid binary package: '/var/cache/binpkgs/app-office/libreoffice-7.6.7.2.gpkg.tar.partial', GPG verify failed
 * Binary package is not usable



Si votre installation est ancienne comme sur mon install de 2020 et de 2015, supprimez (ou renommez) d'abord le dossier gnupg :
Code BASH :
mv /etc/portage/gnupg /etc/portage/gnupg.old


Et on génère les fichiers pour vérifier les signatures GPG des paquets :
Code BASH :
getuto