Jump to content

Archived

This topic is now archived and is closed to further replies.

tuXXX

[Tuto][Initié] Topic officiel Gentoo

Recommended Posts

:DQu'est-ce que Gentoo?

Mhhhh.... par ou commencer ... Ah, oui !

Gentoo tout d'abord est le nom d'un petit pingouin rapide ... Et ce nom n'a pas été choisi par hasard, comme vous le verrez par le suite ;-)

Comme toute distribution, il y a une "philosophie". Ici, le principe est de TOUT recompiler ! Pas seulement le noyau, mais aussi tous les programmes .

Vous allez me dire "Mais pourquoi recompiler? En plus, c'est long !!". Les avantages sont multiple :

Tout d'abord, ça permet d'optimiser les programmes tournant sur le système afin qu'il correspondent le plus possible à la configuration, et notamment pour le processeur.

Et ensuite, cela permet d'avoir constamment les dernières versions de tous les logiciels, puisque la première chose que font les développeurs est de patcher les sources.

Mon but est pour l'instant de faire découvrir cette distribution à ceux qui veulent en savoir un peu plus ... mais aussi de guider les débutants afin de pouvoir rapidement maitriser les différents outils mis à leur disposition .

Indispensable !!!

Le site officiel : bourré d'infos, de tutos, etc ... allez-y absolument si vous êtes intéressés ...

La doc en français

La doc en anglais (y'a pas toujours tout de traduit en français)

Le forum : plein de choses, y'a même une partie "French"

Localisation de Gentoo en français : tout pour mettre en français votre gentoo!

Wiki : de nombreux HowTo.

Share this post


Link to post
Share on other sites

:DL'installation des logiciels

Gentoo utilise son propre système pour installer/désinstaller des logiciels : il s'agit de portage

Il permet d'automatiquement télécharger les sources du programme, de les décompresser, de faire toutes les manips pour l'installer dans un environnement protégé : l'installation ne touche pas au système, puis copie les fichiers utiles dans les dossiers "qui vont bien" et fait ensuite le ménage (suppressions de toutes les sources et fichiers générés pendant la compilation notamment)...

Il gère évidemment les dépendances, la gestion stable/instable très poussée, les différentes options des logiciels, et quelques autres trucs sympa :)

les "USE flags"

Ces flags sont utilisés pour définir les différentes options des logiciels : par exemple le support de X, ou bien du son alsa, etc... en fonction du logiciel... Il existe également les flags "mmx, 3dnow, sse", etc...

Ce paramètre est à modifier dans le fichier /etc/make.conf, vous trouverez plus d'info

sur le site officiel

Comment installer réellement un logiciel?

Pour cela, il faut utiliser la commande "emerge", suivie du nom du logiciel à installer, par exemple, pour installer xchat :

$ emerge xchat

...par contre, en faisant ça, vous ne savez pas tout ce que vous allez installer comme dépendances !

Il est donc conseillé d'utiliser l'option "--pretend" (ou -p) afin de voir la liste des logiciels qui vont être installés en même temps ... et je vous consille aussi d'utiliser l'option "--verbose" (-v) afin de voir les options qui sont activées (dans la variable "USE") afin de pouvoir en enlever si ils vous obligent à installer un logiciel que vous ne voulez pas ...

au final, vous devriez faire

$ emerge -pv xchat

Pour ensuite installer réellement ... avec

$ emerge xchat

ou :

$ emerge -av xchat

...rendez-vous un peu plus loin pour plus de précisions...

Share this post


Link to post
Share on other sites

:DLe noyau

Le noyau aussi est évidemment compilé...

Vous pouvez évidemment tout faire à la main, mais il existe même pour cela un logiciel spécial qui aide à la compilation et à l'installation : genkernel

Même si dans le manuel ils conseillent de faire à la main, je pense qu'il est préférable d'utiliser genkernel, cela permet notamment de ne s'occuper que de la configuration.

Il y a plusieurs noyaux disponibles, en général ce sont des patches qui sont appliqués au noyau officiel afin d'améliorer certaines choses ou d'ajouter des possibilités (reiserfs 4 par exemple).

Voici quelques exemples dans une liste non-exhaustive :

  • vanilla-sources : sources officielles du noyau 2.4
  • development-sources : sources officielles du noyau 2.6
  • gentoo-sources et gentoo-dev-sources : noyaux 2.4 et 2.6 plus un packet de patches afin d'améliorer notamment la rapidité du noyau
  • hardened-sources et hardened-dev-sources : noyaux 2.4 et 2.6 avec des patches et dans des versions optimisées pour un usage serveur (au niveau de la sécurité et de la stabilité notamment)

...pour une liste plus complète et détaillée je vous conseille d'aller voir sur le site officiel, encore une fois

Tous ces noyaux sont facilement compilés et installés grâce à genkernel : il suffit d'installer les sources du noyau :

 $ emerge gentoo-dev-sources

(pour télécharger et décompresser les sources ...)

puis éventuellement :

rm -f /usr/src/linux && ln -s /usr/src/linux-x.y.z /usr/src/linux

emerge genkernel

(pour avoir genkernel)

...et enfin

genkernel --menuconfig all

L'option "--menuconfig" permet de configurer votre noyau ("make menuconfig"). Elle est indispensable !

...qui va :

-mettre quelques options indispensables

-lancer le "make menuconfig"

-compiler le noyau

-compiler les modules

-installer les modules

-créer l'initrd

-copier le noyau et l'initrd dans /boot

15 minutes plus tard (ça dépend bien sur de votre processeur) vous vous retrouvez donc avec un noyau dans /boot (/boot/kernel-[version]), mais aussi d'un initrd (/boot/initrd-[version]) et évidemment des modules (dans /lib/modules/[version]) ...

Il ne vous reste plus qu'à configurer grub ou lilo, et c'est bon !!!

hotplug

J'en profite brièvement pour parler de hotplug, qui est indispensable !!!

Il permet de détecter automatiquement le matériel (cartes réseau, etc...) et de charger les modules correspondant (entre autres).

Cela permet le remplacement ou l'installation sans problème d'à peu près n'importe quel matériel très facilement.

Il est couplé avec "coldplug" qui permet de détecter le matérial au démarrage du système.

 $ emerge hotplug coldplug
$ rc-update add coldplug boot
$ rc-update add hotplug default

Share this post


Link to post
Share on other sites

:D<span style='font-size:14pt;line-height:100%'>Installation</span>

Je ne vais pas trop m'attarder sur l'installation en elle-même, qui est très bien expliquée sur le site officiel, et même en français :

Documantation Gentoo Linux

Version imprimable

Les "stages"

Au début de gentoo, 3 "stages" différents étaient disponibles pour faire une installation :

  • stage1 : compilation et installation de TOUS les programmes, notamment gcc et glibc ... cela permet une configuration totale de tous les paramètes et une très bonne optimisation du système.
  • stage2 : gcc et glibc sont déjà compilés, il est alors moins facile de reconfigurer ceux-ci ... il reste à compiler tous les utilitaires de base : ls, cp, mount, etc ...
  • stage3 : toute la base du système est déjà compilée, c'est donc très rapide à installer, mais cela implique une beaucoup moins bonne configuration des optimisations ... mais les stage3 sont compilés pour une architechture spécifique (athlonxp, pentium4 ...) et les optimisations sont donc normalement déjà mises de sorte que vous n'ayez plus rien à faire...

Le "stage2" n'a jamais été vraiment utilisé car il ne prends pas beacoup plus de temps que le "stage1" tout en empêchant pas mal de choses ...

Mais la méthode "stage1" n'est plus disponible car il est possible d'avoir la même chose en partant d'un stage3, en changeant les flags et en recompilant les paquets voulus! La question ne se pose donc plus :-D

Je voudrais quand même signaler qu'il est possible d'installer gentoo depuis n'import quel linux, que ce soit d'une autre distribution que d'un live CD, knoppix par exemple ...

Il y a pour cela un howto :

ICI, regardez à la section 3 ...

Cela permet de na pas rester en console pendant les heures que peuvent durer une installation "stage1"

Share this post


Link to post
Share on other sites

:DUtilisation avancée de portage

Portage est capable de plein de choses en plus que l'installation/désinstallation basique des logiciels ...

Dans sa dernière version, il a inauguré quelques mécanismaes bien sympatiques :

Il est maintenant possible de gérer les "USE flags" logiciel par logiciel, ainsi que les logiciels stable/instable, etc...

Tous ceci se trouve dans /etc/portage/package.[use, keywords, unmask]

(Pour plus d'information sur ces fichiers, regardez man portage)

Par exemple, si vous essayer d'installer un logiciel quelconque (disons mozilla...) mais que la compilation se passe mal (ne marche pas, quoi), ou bien que le logiciel bugge, ou bien tout simplement que vous savez que une nouvelle version est sortie et quelle est merveilleuse ...

Vous regardez la version que vous vouliez installer ...

$ emerge -pv mozilla

net-www/mozilla-1.6-r1

et vous demandez à portage d'installer uns version plus récente

$ emerge -pv \>mozilla-1.6-r1

( \> désigne en fait le signe ">", mais puisqu'il est utilisé sous linux, il faut dire que c'est vraiment un signe supérieur et pas une redirection)

...puisque auparavant il voulait déjà installer le dernière version stable, vous souhaitez dons une version instable, que l'on désigne par l'apellation "tildarch" ("~x86", "~arm", etc...)

normalement, vous devriez avoir un truc du genre

!!! all ebuilds that could satisfy ">mozilla-1.6-r1" have been masked.
!!! possible candidates are:
- net-www/mozilla-1.7_rc1 (masked by: package.mask, ~keyword)...

... il faut donc passer ce logiciel en instable ("~keyword") ... et puisque vous êtes sur x86, ce sera "~x86" !

Il faut donc rajouter mozilla à la liste dans /etc/portage/package.keywords, en utilisant son nom complet et ajouter derrière le keyword voulu :

$ echo "net-www/mozilla ~x86" >> /etc/portage/package.keywords

(vous pouvez bien sur le faire avec vi si vous préférez ...)

...vous vous aprecevez alors que c'est maintenant un masque qu'il y a dessus :

!!! all ebuilds that could satisfy ">mozilla-1.6-r1" have been masked.
!!! possible candidates are:
- net-www/mozilla-1.7_rc1 (masked by: package.mask)...

donc ...

$ echo "net-www/mozilla" >> /etc/portage/package.unmask

(attention, ceci n'est à faire que à vos risques et périls, car un mask n'est pas posé n'importe comment, il y a toujours une bonne raison... en général, cela veut dire que cette version du logiciel est encore moins stable que tildarch !!, en tout cas n'a pas été testée/est en développement ...)

Il vous est normalement possible maintenant d'installer ce logiciel ...

L'exemple de mozilla est ici extrème, car il est très rare qu'un logiciel soit ainsi masqué ... en général, passer le logiciel en tildarch suffit ...

Il existe la même chose pour les "USE flags" : si, par exemple, vous souhaitez enlever le support pour X dans mplayer (mais seulement dans mplayer...) il suffit de faire :

$ echo "media-video/mplayer -X" >> /etc/portage/package.use

:fumer:Si vous voulez libérer de la place...

  • /usr/portage/distfiles

portage télécharge toutes les sources compressées dans /usr/portage/distfiles

(si vous n'avez pas reconfiguré cela dans le make.conf) ...

Il peut donc contenir des Go de données...

Donc si vous voulez gagner de la place, vous pouvez les enlever.

Par exemple, il contient peut-être les sources complète du noyau 2.6.4 ET 2.6.6 (linux-2.6.4.tar.bz2 et linux2.6.6.tar.bz2) ...

si vous ne voulez plus installer que des noyaux > 2.6.6, vous pouvez enlever l'autre ... et gagner quelques centaines de Mo !

  • emerge --clean et emerge --prune

Il est possible d'utiliser emerge avec une de ces options pour éliminer les logiciels inutile de votre système... (man emerge pour plus d'infos :roule: )

à utiliser avec --pretend ou --ask pour éviter des ravages !

:fumer:Quelques précisions:

il est aussi possible de modifier les keywords pour une version précise d'un package :

echo "=nvidia-kernel-1.0.6106 ~x86">>/etc/portage/package.keywords

...Mais au fait, tous ces manipulations avec les ">>" sont bien dangereuses !!!

Si on oublie et que l'on tape ">" à la place, tout le fichier va être effacé et remplacé par un nouveau...Ce qui peut être très embêtant si il y a plein de choses dedans...

Mais il y a une solution !!! (tiré de la Gentoo Weekly Newsletter) :

Il suffit d'ajouter "set -o noclobber" au fichier de de démarrage du shell (.bashrc pour bash...)

Et vu que ces modifications ne sont faites qu'en root, c'est surtout en root qu'il faut le mettre ...

Donc rajouter "set -o noclobber" à "/root/.bashrc" ...

Cela permet d'empêcher un écrasement du fichier à l'aide de ">" :

echo "=nvidia-kernel-1.0.6106 ~x86" > package.keywords

bash: package.keywords: cannot overwrite existing file

...mais il est toujours possible de forcer en utilisant ">|" !!!

echo "=nvidia-kernel-1.0.6106 ~x86" >| package.keywords

:byebye:Mettre à jour votre distribution !

Gentoo n'est pas une distribution "versionnée", elle évolue continuellement au fil du temps.

Mais pour faire cela, il faut mettre à jour l'arbre de portage, celui-ci contenant la totalité des applications installables, ainsi que leurs versions...

Pour garder votre système à jour, il faut exécuter la commande suivante :

 $ emerge --sync

Ensuite, il y a plusieurs moyens pour mettre à jour le système, notamment d'utiliser les mots-clé "world" et "system" :

 $ emerge world

(à tester avant avec "-pv" ...)

Il y a ensuite des possibilités en utilisant les différentes options de emerge...mais le principe est là :mdr:

Pour faire une mise à jour en profondeur, le mieux est d'utiliser "emerge -pvuD world".

Si cela est fait régulièrement, la quantité de logiciels à installer est minime (et donc rapide :mdr:)

:pleure:Gestion des overlays

un "overlay" est un arbre portage parallèle. Cela permet d'avoir des packets qui ne sont pas dans l'arbre principal.

Ces arbres parallèles sont gérés totalement à la main, portage les parcours pour y trouver des ebuilds, mais rien de plus.

Pour créer un overlay, la première chose à faire est de créer le dossier qui le contiendra, par exemple /usr/local/portage .

Ensuite, il faut le noter dans le fichier /etc/make.conf :

PORTDIR_OVERLAY="/usr/local/portage"

À partir de là, vous pouvez rajouter des ebuilds dedans, ils seront pris en compte automatiquement et utilisés si leur version est supérieure ou égale à celle inclue dans l'arbre principal.

Vous pouvez aussi utiliser des ebuilds pour de nouveaux logiciels qui ne sont pas encore dans l'argbre principal, par exemple ceux téléchargés sur http://bugs.gentoo.org ou sur Ycarus .

Il faut que le chemin respecte la même convention que celle utilisée dans l'arbre principal :

catégorie/nom/nom-version.ebuild

par exemple :

games-fps/nexuiz/nexuiz-1.2.ebuild

Si vous téléchargez juste l'ebuild et que vous essayez de l'installer, il vous sera demandé de créer le "digest". Ce fichier contient normalement les sommes de contrôles (calculées avec md5sum), mais puisque le fichier n'existe pas vous devez le créer. la commande :

 $ ebuild /path/to/ebuild/fichier.ebuild digest

calculera cela pour vous une fois les fichiers téléchargés.

:roule:Gestion des overlays avec layman

layman (LAYout MANager) permet (comme son nom l'indique :mdr:) de gérer les layouts de manière simple.

L'installation est très simple :

 $ emerge layman

...puis rajout de la ligne suivante dans le make.conf :

source /usr/portage/local/layman/make.conf

Il est ensuite possible de mettre à jour la liste avec "layman -f", de lister les dépots disponibles avec "layman -l" et d'ajouter un dépot avec "layman -a [DEPOT]". Les dépots ajoutés sont automatiquement disponibles.

Il est possible de mettre à jour les dépots individuellement avec "layman -s [DEPOT]" ou tous avec "layman -s ALL".

Plus d'information dans la manpage de layman et sur la page du projet

Share this post


Link to post
Share on other sites

:fumer:Le guide des CFLAGS

Dans votre fichier /etc/make.conf, vous avez une option CFLAGS=...

Ce paramètre permet de compiler les programmes pour votre processeur, normalement, il vaut mieux le faire au début d'une install "stage1" mais on peut modifier ce paramètre n'importa quand ... Il n'agira par contre que pour les programmes qui seront compilés par la suite...

-mcpu=***/-mtune=*** : permet d'optimiser pour un processeur tout en maintenant la compatibilité 686 (ou 486 en fonction de CHOST ...)

(-mcpu : gcc <3.4, -mtune : gcc >=3.4)

-march=*** : permet d'optimiser pour un processeur au détriment de la compatibilité avec une autre architecture de processeur ...

athlonXP : -march/cpu/tune = athlon-xp

pentium4 : -march/cpu/tune = pentium4

Quelques exemples de CFLAGS

Implication des flags -march et -O

:fumer: En annexe : gcc flags

-Ox : permet entre autre de "dérouler" plus ou moins les boucles afin d'économiser des tests, l'inconvénient étant d'augmenter le temps de chargement du programme et de ne pas le faire tenir en cache CPU, mais ça agit aussi sur d'autres paramètes...

(par exemple un for(i=0;i<10;i++){instruction} sera décomposé en 10 lignes et économisera 10 tests ...)

-O : pas d'optimisations

-O1 : quasiment aucune optimisations, à n'utiliser qu'en cas de problèmes visiblement dus à la compilation

-O2 : pas mal d'options activés, mais le code sortant reste quand même assez petit

-O3 : développe juste plus les boucle, ce qui augmente trop la taille des exécutables à mon goût

-OX, X>3 : équivalent à -O3 sur gcc ...

Je vous conseille personnellement d'utiliser -O2 ... mais rien ne vous empêche de tester tout ça vous-même ...

-pipe : permet d'utiliser le "pipe" UNIX pour passer les fichiers dans gcc (cc, ld, etc...) sans passer par le disque dur ... économise beacoup de temps, à mettre ABSOLUMENT !

Je ne saurais vous conseiller de rester calme sur le paramètre CFLAG ... pas comme ICI (AthlonXP 2000+ :D )

Share this post


Link to post
Share on other sites

:DLe prelink

Le prelink permet de stocker dans les exécutables les adresses des différentes librairies que ce programme utilise ...

Cela peut permettre des gains de 50% sur certaines grosses applications ...

Il faut pour cela utiliser le programme "prelink" :

 $ emerge prelink

ensuite, lancer "env-update" pour générer "/etc/prelink.conf", puis éventuellement éditer le fichier "/etc/env.d/60prelink" pour exclure les répertoires qui contienent des programmes qui ne doivent pas être prélinkés :

PRELINK_PATH_MASK="/opt"

...ensuite, il suffit d'exécuter :

 $ prelink -afmR

-a : Tous les binaires sont passés à prelink

-f : Oblige prelink à traiter les binaires déjà traités. (si les librairies ont changé)

-m : Conserve l'espace de mémoire virtuelle, nécessaire si vous avez beaucoup de bibliothèques qui ont besoin d'être traitées.

-R : Rend aléatoire (« random ») l'ordre d'adressage, ceci afin d'améliorer la sécurité contre les dépassements de capacité (« buffer overflows »).

Opération à faire de temps en temps. Je vous conseille de mettre à exécuter dans cron, une fois par semaine :

 $ crontab -e

* * 0 * * prelink -afmR

Le prelink permet aussi d'accélérer le démarrage de kde en évitant à celui-ci de démarrer "kdeinit".

Pour cela, il suffit juste d'éditer le fichier /etc/env.d/99kde-env et de mettre KDE_IS_PRELINKED="true" une fois le prelink fini.

Source : la doc de gentoo (oui, encore) ... si vous avez des problèmes, référez-y vous ...

Share this post


Link to post
Share on other sites

:DInstallation des drivers nVIDIA

à faire en root...évidemment :pleure:

->arrêter X

 $ /etc/init.d/xdm stop

Tout d'abord, il faut accepter le ~x86 de la dernère version des packetages...

 $ echo "media-video/nvidia-kernel ~x86">>/etc/portage/package.keywords
$ echo "media-video/nvidia-glx ~x86">>/etc/portage/package.keywords
$ echo "media-video/nvidia-settings ~x86">>/etc/portage/package.keywords

ça va installer pour le noyau courant, donc il faut veiller à ce que le lien symbolique soit bon :

 $ rm /usr/src/linux
$ ln -s /usr/src/linux-`uname -r` /usr/src/linux

->ensuite, on vérifie (versions qui vont être installées notamment) puis on installe :

 $ emerge -pv nvidia-kernel nvidia-glx nvidia-settings
$ emerge nvidia-kernel nvidia-glx nvidia-settings

(éventuellement exécuter "eselect opengl set nvidia" comme ils le disent, bien qu'il soit exécuté automatiquement)

puis on met au démarrage le chargement du module ( dans /etc/modules.autoload.d/kernel-2.6... rajouter "nvidia" )

(éventuellement le charger pour utiliser tout de suite : "modprobe nvidia")

Puis modification du fichier de config : ouvrez /etc/X11/XF86Config(-4) et changez "nv" en "nvidia"

(si vous êtes sous X.org, modifiez le xorg.conf à la place :roule:)

Et enfin on peut relancer X et voir si ça marche (mais si, ça va marcher :fumer:) :

 $ /etc/init.d/xdm start

voilà, à vous les joies de Quake3, UT2004 ...

Et comme je disais, il y a maintenant "nvidia-settings" qui permet de modifier des paramètres (anti-aliasings, aniso, etc...) et même de voir la température du GPU!

:fumer:Installation des drivers ATI

Bon, je suis obligé de parler des drivers ATI :byebye:

Donc d'abord arrêter le serveur X

 $ /etc/init.d/xdm stop

De la même façon que les drivers nvidia, il vaut mieux démasquer les dernières versions afin d'éviter les problèmes... attention cependant, il est possible qu'ils soient en "-*" au lieu de "~x86"

Comme pour les drivers nvidia, il faut bien faire attention au lien symbolique /usr/src/linux

Installer les drivers...

 $ emerge ati-drivers
$ eselect opengl set ati

Exécuter la configuration (qui au passage va remplacer le fichier de config XF86Config-4)

 $ fglrx-config

(dommage pour ceux qui utilisent xorg, ils devront bouger le fichier généré)

Et comme dit Sandeman "pis voilà :)"

(c'est à dire "charger le module et relancer X, éventuellement mettre le module en autoload... voir dans la partie nvidia)

Options du noyau et fglrx(source : Terminou)

Voici les options qui doivent être activées dans le noyau pour que les driver ATI marchent :

Loadable module support -> Enable loadable module support: ENABLED

Loadable module support -> Module unloading: ENABLED

Loadable module support -> Automatic kernel module loading: ENABLED

Processor type and features -> MTRR (Memory Type Range Register) support: ENABLED

Character Devices -> /dev/agpgart (AGP Support): ENABLED OR MODULE

Character Devices -> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support): DISABLED

Activez aussi le support du chip AGP de votre carte mère, par exemple pour les nForce2 : "NVIDIA nForce/nForce2 chipset support"

Pour les AMD64 : il est possible d'utiliser les drivers en 32 bits : activer en plus "AMD Opteron/Athlon64 on-CPU GART"

fglrx :

à la question "Do you want to use the external AGP GART module (y/n)? [n]"

la réponse varie... si vous avez compilé l'agpgart en module, vous pouvez essayer les 2 ("n" sélectionne le driver "ati", "y" sélectionne le driver agp du noyau (qu'il faut charger évidemment : pour les 2.6, il faut charger "agpgart" et le module spécifique à la CM : par exemple "nvidia_agp")

Share this post


Link to post
Share on other sites

:DDes problèmes pendant l'install?

(spéciale dédicace à Sandeman...)

Quelques fois, un package ne veut pas s'installer...

Dans ce cas, il y a plusieurs manières de résoudre le problème.

La première manière est d'essayer une autre version (plus récente (tildarch), plus ancienne)... Cela ne marche pas toujours, mais ne demande pas beaucoup d'effort :fumer:

Ensuite, il faut regarder les messages d'erreur, ce qui se passe, et réagir en conséquence...

  • Si le fichier ne veut pas se télécharger, il suffit d'aller chercher sur internet et de le mettre dans le répertoire /usr/portage/distfiles, et éventuellement refaire le "digest" si le fichier n'est pas identique à celui indiqué dans portage. Pour cela, il suffit de faire

 $ ebuild /usr/portage/[category]/[package]/[package]-[version].ebuild digest

  • Cela permet de recréer le fichier "digest" qui stocke les MD5 des sources...
  • Si le programme compile mal, il faut le faire à la main :
    Tout d'abord, commencer à emerger normalement, mais en utilisant USE="keeptemp keepwork", ce qui permet de ne pas effacer les fichiers temporaire si la compilation échoue.
    Ensuite, aller dans le répertoire où a été décompressé la source (et les patches ont été mis) :

 $ USE="keeptemp keepwork" emerge [category]/[package]-[version]
$ cd /usr/tmp/portage/[package]/work

  • Ensuite, corriger le problème (problème dans le configure, un #ifdef mal positionné, etc...)
    Relancer la compilation avec "make"
    Puis enfin installer, non pas avec make install, mais avec "ebuild", et ensuite effacer les fichiers temporaires:

 $ ebuild /usr/portage/[category]/[package]/[package]-[version].ebuild install
$ ebuild /usr/portage/[category]/[package]/[package]-[version].ebuild clean

  • Cela permet de trouver les bugs, et il est possible ensuite si ça marche de poster la solution sur
http://bugs.gentoo.org

Share this post


Link to post
Share on other sites

:fumer:Les commandes magiques

Voici une liste de quelques commandes très utiles pour gérer une gentoo, ils font tous partie du paquet app-portage/gentoolkit :

  • revdep-rebuild
    Ce programme permet de détecter les programmes auxquels il manque des librairies (par exemple si celle-ci change de version).
    Il trouve à quel paquet appartient l'exécutable en question et tente de le réinstaller.
    On peut l'utiliser sans arguments :
     $ revdep-rebuild


    Ou en utilisant "pretend" :

     $ revdep-rebuild -- -p


    Ou encore en utilisant pas forcément exactement les mêmes numéros de paquet (réinstaller xorg 6.7.0 alors qu'il n'est plus dans portage?, il installe la dernière version disponible)

     $ revdep-rebuild -X


    (tout est dans la man de toute façon :fumer: )

  • equery
    equery permet de faire de nombreuses requêtes sur les paquets, notamment :
    Demander la liste des fichiers d'un paquet :
     $ equery f gentoolkit


    Demander à quel paquet appartient un exécutable :

     $ equery b ping


     $ equery b /bin/ping


    (+la man :D )

  • eclean
    eclean permet de nettoyer notamment le répertoire "distfiles" :
     $ eclean -p distfiles


    ou

     $ eclean -i distfiles


  • glsa-check
    glsa-check permet de vérifier les alertes de sécurités par rapport à son installation actuelle
     $ glsa-check --list
    [...]
    200501-42 [U] VDR: Arbitrary file overwriting issue ( media-video/vdr )
    200501-43 [U] f2c: Insecure temporary file creation ( dev-lang/f2c )
    
    $ glsa-check --test all
    This system is not affected by any of the listed GLSAs
    
    $ glsa-check --fix all
    $ glsa-check --print 200501-43
    [...]


  • euse
    euse permet de savoir l'utilité de chaque variable USE
     $ euse -i threads
    global use flags (searching: threads)
    ************************************************************
    [+ C  ] threads - Adds threads support for various packages. Usually pthreads


Share this post


Link to post
Share on other sites

:DAnnexe : gcc flags

GCC 3.3 (3.3.4)
march/mcpu (gcc/config/i386/i386.c, "processor_alias_table")

nom             archi           specs
------------------------------------------------------------
i386 :          386,            -
i486 :          486,            -
i586 :          pentium,        -
pentium :       pentium,        -
pentium-mmx :   pentium,        MMX
winchip-c6 :    486,            MMX
winchip2 :      486,            MMX 3DNOW
c3 :            486,            MMX 3DNOW
i686 :          pentium pro,    -
pentiumpro :    pentium pro,    -
pentium2 :      pentium pro,    MMX
pentium3 :      pentium pro,    MMX SSE
pentium4 :      pentium,        MMX SSE SSE2
prescott :      pentium,        MMX SSE SSE2 SSE3
nocona :        pentium,        MMX SSE SSE2 SSE3
k6 :            k6,             MMX
k6-2 :          k6,             MMX 3DNOW
k6-3 :          k6,             MMX 3DNOW
athlon :        athlon,         MMX SSE 3DNOW 3DNOW+
athlon-tbird :  athlon,         MMX SSE 3DNOW 3DNOW+
x86-64 :        athlon,         MMX SSE
athlon-4 :      athlon,         MMX SSE 3DNOW 3DNOW+
athlon-xp :     athlon,         MMX SSE 3DNOW 3DNOW+
athlon-mp :     athlon,         MMX SSE 3DNOW 3DNOW+

GCC 3.4 (3.4.3)
march/mtune (gcc/config/i386/i386.c, "processor_alias_table")

nom             archi           specs
------------------------------------------------------------
i386 :          386,            -
i486 :          486,            -
i586 :          pentium,        -
pentium :       pentium,        -
pentium-mmx :   pentium,        MMX
winchip-c6 :    486,            MMX
winchip2 :      486,            MMX 3DNOW
c3 :            486,            MMX 3DNOW
c3-2 :          pentium pro,    MMX SSE
i686 :          pentium pro,    -
pentiumpro :    pentium pro,    -
pentium2 :      pentium pro,    MMX
pentium3 :      pentium pro,    MMX SSE
pentium3m :     pentium pro,    MMX SSE
pentium-m :     pentium pro,    MMX SSE SSE2
pentium4 :      pentium4,       MMX SSE SSE2
pentium4m :     pentium4,       MMX SSE SSE2
prescott :      pentium4,       MMX SSE SSE2 SSE3
nocona :        pentium4,       MMX SSE SSE2 SSE3 64BIT
k6 :            k6,             MMX
k6-2 :          k6,             MMX 3DNOW
k6-3 :          k6,             MMX 3DNOW
athlon :        athlon,         MMX SSE 3DNOW 3DNOW+
athlon-tbird :  athlon,         MMX SSE 3DNOW 3DNOW+
athlon-4 :      athlon,         MMX SSE 3DNOW 3DNOW+
athlon-xp :     athlon,         MMX SSE 3DNOW 3DNOW+
athlon-mp :     athlon,         MMX SSE 3DNOW 3DNOW+
x86-64 :        k8,             MMX SSE SSE2 64BIT
k8 :            k8,             MMX SSE SSE2 3DNOW 3DNOW+ 64BIT
opteron :       k8,             MMX SSE SSE2 3DNOW 3DNOW+ 64BIT
athlon64 :      k8,             MMX SSE SSE2 3DNOW 3DNOW+ 64BIT
athlon-fx :     k8,             MMX SSE SSE2 3DNOW 3DNOW+ 64BIT

Share this post


Link to post
Share on other sites

Bon ben voilà ... après tous ces [Reserverd], au cas où j'ajouterais des trucs (ou astuces !!), voici la première page pour causer ...

Comment ça "C'est pas trop tôt ?"

Share this post


Link to post
Share on other sites

Gentoo powaaaaaaaaaaaaaaaa

Mais perso, je trouve que le tuto de gentoo.org est super bien fait, et que le risque est de finir par faire redondance (ce qui n'est pas forcément un mal)... Enfin, pour x86... paske pour alpha, c'est la galère totale, mais je crois pas qu'on soit nombreux sur PCI à en avoir un, d'alpha.

Sinon, je veux bien essayer d'aider (en fait essayer d'install sur un système où la doc est pas top, ça permet de progresser) mais je risque de plus avoir masse de temps dans les prochains jours (partiels).

Sinon, j'ajouterais aussi que le forums gentoo.org est vraiment bien pour les problèmes complexes (à condition d'avoir lu le tuto), que ce soit en fr ou en en...

Share this post


Link to post
Share on other sites

Ouais, je vais rajouter ça en gros ^_^

Et puis il faut que je fasse un truc sur les use, portage et tout ça ...

:craint: (ajout des CFLAGS, c'est déjà ça...)

Share this post


Link to post
Share on other sites

beau boulot tuXXX...comme d'hab ! :francais: On sent deja plus l'utilisateur experimente, pas comme ces ... ( dsl je sors de prise de rmq dans la gueule par des Mandrakiens... :'( ). Ca me donne meme envie d'essayer d'installer ca sur une machine de test.... Je dis pas que je lacherai ma debian, loin de la, mais franchement ca me plait vraiment bien, d'autant plus que je suis habitue a tout recompiler pour ma ptite debian, excepte les packages de base ! :craint: A relire pour ma part, et a tester !

Share this post


Link to post
Share on other sites

×
×
  • Create New...