Voici un nouveau tuto qui explique quelques étape permettant d'entretenir une Gentoo ...
Cela passe par la mise à jour, jusqu'a la suppression des dépendances "oubliée"
Vos commentaires sont les bienvenus
http://pix-mania.dyndns.org/web_plugin/ ... wpage&id=6
Si le lien ne fonctionne plus, voici une copie de la doc :
Gentoo - entretenir son Linux
Affiché 93 fois, révision 26, dernière mise à jour le 01/04/2008 17:30:00
Objectifs
Dans cette documentation, nous allons mettre à jour une distribution Gentoo Linux et faire un peu de ménage. Vous apprendrez aussi à utiliser correctement les outils du portages.
1. Synchronisation
Pour effectuer une mise à jour, vous devez, dans un premier temps, effectuer une "synchronisation"; procéder ainsi:
# emerge --sync
ou
# emerge-webrsync
Ces deux commandes font exactement la même chose, à la différence que la 2ème utilise le port 80 pour télécharger une archive alors que la première utilise un serveur particulier. En principe, on utilise la 2ème commande uniquement si la première pose problème (très rare).
Cette première action va mettre à jour la "mémoire" du portage (gestionnaire de packet); il pourra avoir connaissance des nouvelles versions et des nouveaux packets disponible.
A la fin de la synchronisation, il est possible que "emerge" vous informe d'une nouvelle version du packet "portage" (le packet contenant les scripts de portage). Si c'est le cas, il faut "emerger" le packet "portage" avant tout autre!
# emerge portage
Cette dernière commande va installer la nouvelle version du "portage" et désinstaller l'ancienne.
2. Mise à jour
La mise à jour de l'entièreté du système est très simple et se réalise généralement en une seule commande :
# emerge -uDNpv world
Dans la liste qui s'affiche, vérifier que les packets sélectionnés dans la mise à jour vous convienne; vérifier également que les flags (USE, VIDEO_CARDS, INPUT_DEVICES, LINGUAS, etc...) sont bien configuré comme vous le souhaiter. Quand tout est correct, retirer les paramètres "pv" et relancer la commande pour commencer la mise à jour.
Note: il est possible que des problèmes se manifestent (voir titre suivant).
Une fois la/les mises à jour terminée, il ne faut surtout pas oublier de mettre à jour les fichiers de configuration avec la commande suivante :
# etc-update
Cette dernière va automatiquement mettre à jour une partie des configurations de votre système. Les configurations restantes seront affichées à l'écran. Il va falloir procéder avec technique, cette dernière étant :
- sélectionner les fichiers que vous avez déjà du modifier (exemple: /etc/conf.d/keymaps pour le clavier)
- supprimer le fichier de mise à jour (pour ne pas repasser à un clavier QWERTY
Une fois que vous aurez exclu tous les fichiers dont vous ne désirer pas de mise à jour, il restera dans la liste des fichiers d'importance mineure (dont vous n'en avez rien à faire ...). Pour eux seulement, faites un "-3" (ou "-5") pour les mettres à jour. Si vous refaites "etc-update", aucun fichier ne doit apparaitre dans la liste.
La mise à jour est terminée
2.1. Problèmes pouvant survenir
Calculating dependencies... done!
[ebuild N ] gnome-base/control-center-2.20.3 USE="alsa eds esd hal -debug" 0 kB
[ebuild N ] gnome-base/gnome-settings-daemon-2.22.0 USE="alsa esd gstreamer -debug" 0 kB
[ebuild U ] gnome-base/gnome-keyring-2.22.0-r2 [2.20.3] USE="hal pam -debug -doc -test" 862 kB
[ebuild U ] gnome-base/gnome-session-2.22.0 [2.20.3] USE="ipv6 tcpd -branding -debug (-esd%*)" 761 kB
[blocks B ] gnome-base/control-center-2.22 (is blocking gnome-base/gnome-settings-daemon-2.22.0)
L'exemple précédent indique clairement un problème à ce niveau :
[blocks B ] gnome-base/control-center-2.22 (is blocking gnome-base/gnome-settings-daemon-2.22.0)
Cela signifie que le packet "control-center" bloque l'installation de "gnome-settings-daemon". Dans ce cas (et beaucoup d'autre), il faut désinstaller le premier packet pour permettre au deuxième packet de s'installer correctement.
Mais, pourquoi est-ce que cela se produit ???
Eh bien, c'est simple: le premier packet étant généralement déprécié, il faut le désinstaller. C'est le deuxième packet qui proposera, dès maintenant, les fonctionnalités du premier packet maintenant "périmé".
Dans certain cas, le problème est différent: deux packets propose les même fonctionnalités mais un seul peut être installé à la fois. Il faut donc désinstaller le premier si on veut utiliser le deuxième.
La solution est donc de désinstaller le packet "control-center" :
# emerge --unmerge control-center
et ensuite, refaire la demande de mise à jour. Le packet ne devrait plus être "bloquant".
3. Réparer les librairies cassées
Après une mise à jour, il n'est pas rare que celle-ci ai "cassé" des librairies. Il est donc impératif de les "réparer".
Quoi ? C'est quoi une librairie ???
Imaginer... Une librairie est un endroit qui contient tout plein de livres
Vous, un être humain, vous êtes le "programme". Un programme utilise des "librairies" (ces dernières apportent un plus au programme). Vous utilisez aussi des "librairies": celle-ci vous apportent de multiple informations.
Une librairie, c'est donc une collection de truc (code informatique) permettant d'étendre les fonctionnalités d'un programme.
Note: une librairie n'est PAS quelques chose d'optionel! Si le programme à été compilé pour utiliser une librairie, celle-ci DOIT être présente; dans le cas contraire, une erreur est lancée lors de l'exécution du programme (impossible d'ouvrir la librairie partagée ...).
Pourquoi des librairires ???? Pourquoi une librairie peut être partagée ??
Très simple. Une librairie apportant des fonctionnalités XYZ pourrait être utilisée par plus d'un programme. C'est d'ailleurs un des avantages des librairies : éviter la redondance.
Il est donc tout à fait normal de considérer une librairie comme "partagée" entre plusieurs programme.
Plusieurs programmes peuvent donc utiliser la/les même librairies. Si la librairie est dite "cassée", elle ne peut plus être utilisée par les programmes... les programmes risque donc de ne plus fonctionner correctement (soit tout le programme, soit juste une partie).
Ca veut dire quoi une "librairie cassée" ???
Une librairie est dite cassée lorsque les fichiers "librairies" sont introuvable ou que la version de l'API n'est plus la même. Cela se produit lors de la mise à jour d'une librairie.
En effet, après mise à jour d'une librairie, celle-ci est généralement d'une version plus récente, certain fichier pourrait être introuvable. Les programmes n'arrivent, dès lors, plus à ouvrir les librairies requises et leur fonctionnement basique peut être gravement touché. Pour réparer cela, il faut recompiler le programme qui ne trouve plus la librairie. En faisant cela, il va pouvoir se reconstruire autour de la nouvelle librairie; l'exécution de ce dernier ne provoquera plus d'erreur.
Note: pour 1 librairie cassée, il est probable d'avoir 10 programmes demandant recompilation; c'est tout à fait normal.
Vous ne devrez pas réinstaller les programmes endomagés (à cause des librairies) un à un, à la main. Il existe un outil spécialement concu pour cela. Veuiller l'exécuter après chaque mise à jour pour vérifier la présence de librairies cassées :
# revdep-rebuild -X
Note: le paramètre "-X" précise d'emerger la dernière version disponible dans portage et pas la version actuelle du programme. Cela est très intéressant si la dernière mise à jour date de longtemps. Dans ce cas, les versions déjà installées sur le système risque de n'être plus disponible dans portage, c'est pourquoi le "-X" n'est pas un mauvais choix.
4. Un peu de nettoyage
La première chose à faire quand on veut faire le ménage dans une Gentoo, c'est de virer les sources inutiles. Le meilleur moyen d'y arriver, c'est de procéder comme suit :
- configurer la nouvelle version du kernel installée (après mise à jour)
- l'utiliser
- supprimer toutes les versions antérieurs à la dernière version disponible dans portage
Pour la désinstallation des vieilles sources, faites ceci :
# emerge -Ppv gentoo-sources
Voici un exemple :
loop ~ # emerge -Ppv gentoo-sources --nodeps
>>> These are the packages that would be unmerged:
sys-kernel/gentoo-sources
selected: 2.6.22-r6 2.6.23-r2 2.6.23-r3 2.6.23-r4 2.6.23-r5
protected: 2.6.24-r2
omitted: none
>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.
Dans l'exemple précédent, quelques explications sont nécessaire à la bonne compréhension :
- "P" : c'est ce paramètre qui précise à portage de désintaller toutes les versions antérieur au dernier kernel (pour rappel, chaque source est "slotée" et donc, aucune désinstallation automatique ne sera effectuée lors de l'installation d'une version plus récente).
- "--nodeps" : précise au portage de ne pas tenir compte des dépendances (oui, si votre système n'est pas totalement à jour, il pourrait y avoir des dépendances non satisfaites. Pour quand même effectuer le nettoyage des sources, il faut préciser ce paramètre).
Si le résultat est bien celui auquel vous vous attendiez, retirer le "pv" pour lancer la désinstallation "en chaine".
Ci dessous, un exemple reprenant la même commande que l'exemple précédent, mais sans le "--nodeps" (uniquement pour vous montrer l'erreur que l'on peut rencontrer) :
loop ~ # emerge -Ppv gentoo-sources
Calculating dependencies... done!
Dependencies could not be completely resolved due to
the following required packages not being installed:
>=x11-libs/motif-config-0.9 required by x11-libs/openmotif-2.3.0
~kde-base/kdebase-3.5.8 required by kde-base/kdepim-3.5.8
>=dev-libs/check-0.9.2 required by media-libs/gstreamer-0.10.17
~kde-base/kdelibs-3.5.8 required by kde-base/kdepim-3.5.8
~kde-base/kdepim-3.5.9 required by kde-base/kdeaddons-3.5.9 kde-base/kde-3.5.9
Have you forgotten to run `emerge --update --newuse --deep world` prior to
prune? It may be necessary to manually uninstall packages that no longer
exist in the portage tree since it may not be possible to satisfy their
dependencies. Also, be aware of the --with-bdeps option that is documented
in `man emerge`.
If you would like to ignore dependencies then use --nodeps.
Dans l'exemple précédent, une dépendance n'est pas satisfaite; portage s'arrete donc... Note que portage est relativement bien pensé et propose généralement, lors d'une erreur, un moyen d'y remédier. C'est ainsi qu'il vous propose d'utiliser "--nodeps" ou alors, de résoudre le problème de dépendance en emergant les packets manquants.
La désinstallation des sources peut prendre un certain temps car elles contiennent énormément de fichier de petite taille. Les sources de 1 seul kernel prennent environs 300Mo (une fois décompressée); regarder l'exemple qui suit :
loop src # du -sh *
0 linux
373M linux-2.6.20-xen-r6
377M linux-2.6.22-gentoo-r6
98M linux-2.6.23-gentoo
289M linux-2.6.23-gentoo-r2
288M linux-2.6.23-gentoo-r3
288M linux-2.6.23-gentoo-r4
288M linux-2.6.23-gentoo-r5
400M linux-2.6.24-gentoo-r2
Dans l'exemple précédent, on vois que l'administrateur à installé beaucoup de sources et que tout ca n'est pas très propre. Beaucoup de perte d'espace disque inutile ...
Ca y est, vous avez foutu vos sources à la poubelle ? Noter que la suppression des sources n'entraine pas la suppression des images compilée (se trouvant dans "/boot"). Il est donc possible de les conservers mais cela reste inutile vu que vous êtes sencé utiliser la dernière version disponible.
Continuons le nettoyage ...
Il est très intéressant de retirer les dépendances non utilisée; ce sont des packets installé via le mécanisme de dépendance. Lors de la désinstallation du packet parent, les packets "fils" restent présent sur le système. Il faut utiliser cette commande pour retirer ceux-ci :
# emerge -pv --depclean
Noter que toutes les dépendances doivent être résolue pour les packets déjà installé, dans le cas contraire, une erreur du genre ce produit :
loop # emerge -pv --depclean
*** WARNING *** Depclean may break link level dependencies. Thus, it is
*** WARNING *** recommended to use a tool such as `revdep-rebuild` (from
*** WARNING *** app-portage/gentoolkit) in order to detect such breakage.
*** WARNING ***
*** WARNING *** Also study the list of packages to be cleaned for any obvious
*** WARNING *** mistakes. Packages that are part of the world set will always
*** WARNING *** be kept. They can be manually added to this set with
*** WARNING *** `emerge --noreplace `. Packages that are listed in
*** WARNING *** package.provided (see portage(5)) will be removed by
*** WARNING *** depclean, even if they are part of the world set.
*** WARNING ***
*** WARNING *** As a safety measure, depclean will not remove any packages
*** WARNING *** unless *all* required dependencies have been resolved. As a
*** WARNING *** consequence, it is often necessary to run
*** WARNING *** `emerge --update --newuse --deep world` prior to depclean.
Calculating dependencies... done!
Dependencies could not be completely resolved due to
the following required packages not being installed:
>=x11-libs/motif-config-0.9 required by x11-libs/openmotif-2.3.0
>=dev-libs/check-0.9.2 required by media-libs/gstreamer-0.10.17
~kde-base/kdepim-3.5.9 required by kde-base/kdeaddons-3.5.9 kde-base/kde-3.5.9
Have you forgotten to run `emerge --update --newuse --deep world` prior to
depclean? It may be necessary to manually uninstall packages that no longer
exist in the portage tree since it may not be possible to satisfy their
dependencies. Also, be aware of the --with-bdeps option that is documented
in `man emerge`.
Dans l'exemple précédent, 3 packets manques à l'appel; ce sont des dépendances qui ne sont pas satisfaite. Il faut les installer avant de pouvoir procéder au nettoyage complet. Lorsque cela est fait et qu'il n'y a plus d'erreur au lancement de la commande et que le résultat vous convient, retirer le "-pv" de la commande et relancer la pour procéder.
Il est indiqué, dans les informations de la commande (affiché lors de l'exécution), que cette commande pourrait casser des librairies, c'est pourquoi il est utile d'exécuter la commande suivante pour détecter et réparer ces cassages :
# revdep-rebuild -X
Cette dernière va emerger le nécessaire en utilisant la dernière version disponible.
Voilà, votre système est à jour, il est nettoyé et les librairies qui ont été cassées sont réparée. Il ne reste plus qu'a vérifier si il existe des fichiers de configuration devant être mis à jour... Exécuter donc cette dernière commande :
# etc-update
Fini
---------------
--- THE END ---
---------------


