Outils personnels
Vous êtes ici : Accueil Linux Gentoo Utilisation d'une Gentoo - Problèmes/Solutions - FAQ 29 - Une mise à jour importante sans soucis ? (02/10/2012)
Navigation
Se connecter


Mot de passe oublié ?
 

29 - Une mise à jour importante sans soucis ? (02/10/2012)

Par Freecrazy - Dernière modification 04/10/2012 21:19

Près de 5 mois après la dernière mise à jour, il va y avoir du taf. En effet près de 310 paquets doivent être recompilés, mais pour une fois je n'ai pas de problèmes "problématiques" !

Le temps a passé vite et me voilà 5 mois après la mise à jour du 09 mai, prêt à remettre cela. Je m'attends à tout.

J'entame les séquences de mise à jour que vous trouverez à la page : Mettre à Jour une Gentoo

La mise à jour de portage se passe sans problème.

1 news relative à :

  • '2012-09-09-make.conf-and-make.profile-move' qui indique que 'make.conf' et 'make.profile' ont "déménagé" de /etc à /etc/portage. Mais ce changement ne concerne que les nouvelles installations. Pour les installations existantes, il n'y a rien à faire, sauf si vous voulez suivre le mouvement. Dans ce cas ce sera l'occasion de déplacer vos fichiers au nouvel emplacement.

Mais comme d'habitude les difficultés commence avec la mise à jour proprement dite :

1 - Problème de dépendance pour VLC

Dès le début de mon emerge j'ai pour le paquet "media-video/vlc" un message qui me dit :

The following REQUIRED_USE flag constraints are unsatisfied :
    httpd? ( lua )

J'avoue ne pas bien comprendre le httpd?, par contre je n'ai pas effectivement mis le flag 'lua'.

Entre supprimer VLC pour le réinstaller plus tard, et ajouter le flag 'lua' j'hésite mais j'opte pour la seconde solution car VLC vient il me semble me souvenir avec beaucoup d'autres paquets. Donc dans /etc/portage/package.use j'ajoute 'lua' aux flags de VLC, et cela a l'air de convenir.

2 - Conflit sur un paquet

Plusieurs instances de net-wireless/madwifi-ng-tools (la 0.9.4.4180.20120502 à installer et la 0.9.4.4165.20110816 installée dont dépend madwifi-ng-0.9.4.4165.20110816) sont en conflit et ne peuvent être installées en même temps. Il est proposé 2 solutions :

  • éditer /usr/portage/profiles/package.mask et y inscrire le paquet en cause afin qu'il ne soit pas sélectionné
  • ou élargir l'option --backtrack=30 par exemple.

Je ne comprends pas la 1ière solution car je pense que l'option --exclude <atom>, voire --deselect=y <atom> aurait suffi (cf. Mettre à Jour une Gentoo ). Du coup la 2ième solution me paraît plus simple mais elle ne fonctionne pas.

Donc je n'en fait qu'à ma tête et j'utilise --exclude madwifi-ng-tools. A noter que cette option --exclude ne supprime pas, contrairement à --deselect, l'atom du set world. En d'autres termes, l'atom ne sera pas supprimé lorsqu'on lancera emerge --depclean.

3 - Ajout de quelques 'USE'

A la suite de l'info précédente sur le conflit d'un paquet, j'ai également 3 paquets qui demandent des USE supplémentaires :

  • media-libs/mesa-8.0.4-r1 xa
  • x11-libs/libdrm-2.4.33 libkms
  • sys-libs/zlib-1.2.7 minizip

Il est proposé d'utiliser --autounmask-write pour écrire ces changements dans le fichier de configuration. Ce que je fais.

Nota : pour que l'écriture soit effective il vous faudra lancer la commande dispatch-conf (qui est le successeur de la commande 'etc-update') puis 'e' pour 'edit-new' ainsi vous verrez votre nouveau fichier et vous pourrez même le modifier, ensuite 'u' pour 'use-new' ce qui vous remplacera l'ancien fichier par le nouveau.

4 - Paquet bloqué (talloc-2.0.5)

A ce stade, on avance un peu plus, mais par encore complétement puisque cette fois, j'ai 'sys-libs/talloc-2.0.7' qui est bloqué par 'talloc-2.0.5' lui-même requis par samba-3.5.15 ! A priori on ne peut les installer en même temps.

Un 'equery depends talloc-2.0.5' ou talloc-2.0.7 montre que samba-3.5.15 dépend des 2 versions de talloc. Et un 'emerge -puv samba' montre qu'il n'y a pas de mise à jour de samba.

Donc j'utilise (de nouveau) --exclude talloc

5 - Poursuite de la mise à jour et résolution des derniers petits points de blocage (madwifi-ng-tools et talloc)

Cette fois la commande 'emerge -uD --exclude madwifi-ng-tools --exclude talloc world' lance la compilation des paquets : il y en a  309 !!!

28H plus tard la compilation des 309 paquets est terminée, et ce SANS erreur ! C'est une première !

Je pense que je peux lancer un 'emerge --depclean'. Cette commande ainsi que la suivante 'revdep-rebuild' devraient même me résoudre la problématique de conflit des 2 paquets que j'ai "exclus" ('madwifi-ng-tools' et 'talloc').

  • 'emerge --depclean' me supprime 24 paquets !
  • 'revdep-rebuild' m'en recompile 7.

Et tout se passe sans anicroche, c'est bien la première fois !

Cependant contrairement à ce que je pensais cela coince toujours pour 'madwi-ng-tools-0.9.4.4180.20120504' et 'talloc-2.0.7' ce que confirme un nouveau 'emerge -uD world'

    5.1 - Résoudre le blocage de 'talloc'

Le retour de 'emerge -uD world' indique que la mise à jour talloc-2.0.7 demande la présence de talloc-2.0.5 qui est un paquet bloqué, alors que ma version installée est la 2.0.1-r2. Vous avez une ligne de type :

[blocks B      ] <sys-libs/talloc-2.0.5 ("<sys-libs/talloc-2.0.5" is blocking sys-libs/talloc-2.0.7)

Comme souvent dans cette situation, il suffit de supprimer et de réinstaller. Cela se fait par la commande suivante :

# emerge -C talloc && emerge talloc

Il faudra quand même lancer ensuite un 'emerge --depclean && revdep-rebuild' afin de s'assurer que tous les liens soient bien en place.

    5.2 - Résoudre le conflit madwifi-ng-tools

 Si le fait de relancer un 'emerge -uD world' me compile 4 paquets dont le metasploit-2.7 alors que le dernier est la version 3.2 !?, j'ai toujours :

(net-wireless/madwifi-ng-tools-0.9.4.4180.20120502::gentoo, ebuild scheduled for merge) conflicts with
 ~net-wireless/madwifi-ng-tools-0.9.4.4165.20110816 required by
    (net-wireless/madwifi-ng-0.9.4.4165.20110816 installed)

J'ai voulu faire comme précédemment, mais en y regardant de plus près j'ai une mise à jour pour madwifi-ng-tools mais je ne l'ai pas encore pour madwifi-ng qui a besoin de madwifi-ng-tools ancienne version !!!

Ce conflit ne peut donc être résolu que par les mainteneurs du paquet madwifi-ng : nous allons donc attendre un peu ...

Je ne peux m'empêcher d'encore relancer un 'emerge --depclean && revdep-rebuild' histoire d'être sûr que tout soit correct. A noter d'ailleurs que le 'emerge --depclean' me supprime les 4 fichiers précédemment installés dont le 'vieux' metasploit.

    5.3 - Finir la mise à jour

A ce stade, on devrait lancer un 'etc-update' mais il paraît que la commande à utiliser dorénavant est 'dispatch-conf' elle serait plus "sûre" mais je n'ai guère trouvé plus d'explication.

Je lance donc 'dispatch-conf' en m'attendant, au regard du nombre de paquets compilés, à traiter une flopée de fichiers de configuration. Hé bien non ! la commande me retourne ... rien. J'ai du mal à le croire, je lance 'etc-update' qui me confirme par ce message 'Nothing left to do' qu'il n'y a rien à faire.

Je n'en reviens pas, c'est la première fois que je mets à jour autant de paquets sans galérer (et des fois pendant des jours) !

Actions sur le document