Outils personnels
Vous êtes ici : Accueil Linux Gentoo Utilisation d'une Gentoo - Problèmes/Solutions - FAQ 26 - 'gnome-base/orbit fails' du fait de libglib-2.0.la (MàJ du 06/10/2011)
Navigation
Se connecter


Mot de passe oublié ?
 

26 - 'gnome-base/orbit fails' du fait de libglib-2.0.la (MàJ du 06/10/2011)

Par Freecrazy - Dernière modification 15/10/2011 22:03

4 mois et 2 jours après ma dernière mise à jour, j'appréhendais un peu. Qu'est-ce qui allait "merder" cette fois ? Quelques broutilles : la modification du pilote Mesa, un USE python pour lbxml, un 'world file problem', la disparition de la VM Java Blackdown, mais surtout 'gnome-base/orbit-2.14.19-r1' qui ne s'installe pas du fait de l'absence de '/usr/lib/libglib-2.0.la'.

Le rituel est le même, on commence par regarder si une mise à jour de portage est disponible avec

# emerge --sync

ce qui est le cas, donc :

# emerge portage

En retour il y a 2 fichiers de configuration à mettre à jour (à faire avec la commande etc-update) :

  • /etc/etc-update.conf qui voit logiquement la suppression de ma 'diff_command' (cf. 24 - Une mise à jour au 19 mars 2011, presque sans problème) : diff_command="colordiff -uN %file1 %file2 | less -R " ... que je vais devoir remettre, car j'aime bien voir les modifications en couleur !
  • /etc/logrotate.d/elog-save-summary

Il y avait également une news que l'on se dépêche de lire

# eselect news read new
2011-08-28-mesa-r600g
  Title                     Mesa r600 driver now defaults to gallium
  Author                    Chi­-Thanh Christopher Nguyen <chithanh@gentoo.org>
  Posted                    2011-08-28
  Revision                  1

This news item is relevant to you only if you have a Radeon graphics
chipset and use the free/open source driver.

The r600 driver that provides 3D acceleration for Radeon HD 2400 and
later cards comes in the "classic" and "gallium" variants. The gallium
driver is based on the new Gallium3D infrastructure and was chosen as
the default driver for media-libs/mesa-7.11.

Existing users will not be switched automatically. To switch to the
r600 gallium driver, use the following command:

    eselect mesa set r600 gallium

Gallium3D requires kernel modesetting (KMS). If your system is not yet
configured for KMS, consult the X Server Configuration HOWTO for
instructions prior to switching:

    http://www.gentoo.org/doc/en/xorg-config.xml

Et on passe à l'étape de mise à jour des paquets avec :

# emerge --update --deep world

Et là, après la liste des paquets à mettre à jour, nous avons :

The following USE changes are necessary to proceed:
#required by media-libs/mesa-7.11, required by x11-base/xorg-server-1.10.4[-minimal],
required by x11-drivers/xf86-video-ati-6.14.2, required by x11-base/xorg-drivers-1.10
[video_cards_radeon]
=dev-libs/libxml2-2.7.8-r1 python

NOTE: This --autounmask behavior can be disabled by setting
    EMERGE_DEFAULT_OPTS="--autounmask=n" in make.conf.

Use --autounmask-write to write changes to config files (honoring CONFIG_PROTECT).

!!! Problems have been detected with your world file
!!! Please run emaint --check world

!!! Ebuilds for the following packages are either all
!!! masked or don't exist
dev-java/blackdown-jdk

Tout cela fait peur, non ? mais tout va bien se passer (croisons les doigts ;-). Reprenons dans l'ordre :

1 - "Mesa r600 driver now defaults to gallium"

La news annonce un changement de driver (pilote) des cartes graphiques de type Radeon. Bien sûr, c'est mon cas. Pour s'en assurer vous pouvez lancer la commande :

# lspci | grep VGA
01:00.0 VGA compatible controller: ATI technologies Inc Radeon Mobility M6 LY

ou mieux :

# lspci -v | grep -A 9 VGA
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY (prog-if 00 [VGA controller])
	Subsystem: Compaq Computer Corporation Evo N600c
	Flags: bus master, stepping, 66MHz, medium devsel, latency 66, IRQ 11
	Memory at 48000000 (32-bit, prefetchable) [size=128M]
	I/O ports at 3000 [size=256]
	Memory at 40200000 (32-bit, non-prefetchable) [size=64K]
	[virtual] Expansion ROM at 40220000 [disabled] [size=128K]
	Capabilities: [58] AGP version 2.0
	Capabilities: [50] Power Management version 2
Cette dernière commande peut vous donner aussi le pilote utilisé, ce n'est pas le cas ici. Pour cela on peut consulter le log le plus récent de Xorg :
# grep /drivers/ /var/log/Xorg.0.log
[  4382.115] (II) Loading /usr/lib/xorg/modules/drivers/ati_drv.so
[  4382.130] (II) Loading /usr/lib/xorg/modules/drivers/radeon_drv.so
[  4382.484] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[  4382.570] (II) Unloading /usr/lib/xorg/modules/drivers/vesa_drv.so
[  4382.571] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[  4382.579] (II) Unloading /usr/lib/xorg/modules/drivers/fbdev_drv.so 
ATTENTION, le retour ci-dessous est donné à titre d'exemple et ne vaut que sur ma machine (les 2 Unloading sont symptomatiques d'un petit problème que je regarderai plus tard). Mais on ne voit pas de Mesa ou de r600, donc la news ne me concerne pas

(ce qui ne me surprend pas car de l'accélération 3D sur mon vieil Evo N600c, hein ...)

Nota : Pour ceux qui seraient concernés, il suffit de suivre ce qui est indiqué, à savoir lancer la commande 'eselect mesa set r600 gallium' et de vérifier que KMS est configuré dans le kernel (cf. http://www.gentoo.org/doc/en/xorg-config.xml )

2 - "The following USE (python) changes are necessary to proceed"

La première partie du retour de l'emerge --update, indique qu'il me faut changer un USE

dev-libs/libxml2-2.7.8-r1 python
Je découvre à l'occasion que l'USE python n'est pas dans mon make.conf ! Cela ne m'a pas gêné jusque là mais plutôt que de le mettre dans /etc/portage/package.use, je l'ajoute dans la liste des USE de mon /etc/make.conf.

 

3 - "Problems have been detected with your world file"

La deuxième partie du retour de l'emerge --update, indique un problème avec le 'world file', et nous demande de lancer :

# emaint --check world

qui me retourne une barre de progression et un Finished triomphant ;-))

4 - Ebuild for dev-java/blackdown-jdk doesn't exist

La troisième et dernière partie de l'emerge --update concerne un paquet java : blackdown-jdk. Ce n'est pas la première fois que j'ai quelques soucis avec java (cf. 25-Mise à jour "critique" Baselayout 2 par ex). Je lance :
# /usr/bin/java-check-environnement
Tout est OK, j'essaie :
# /usr/bin/java-config
Et là retour d'une erreur, car l'attendu était java-config-2, qu'à cela ne tienne, je lance :
# emerge -va java-config

qui m'installe le paquet java-config-2.1.11-r3

Cette fois je peux lancer :
# java-config -L
The following VMs are available for generation-2 :
1) Blackdown JDK 1.4.2.03 [blackdown-jdk-1.4.2]
*) IcedTea6-bin 1.9.7 [icedtea6-bin]
Sauf que blackdown-jdk-1.4.2 ne figure plus dans portage (faites un emerge -s blackdown-jdk, vous verrez), donc à supprimer :
# emerge -ca dev-java/blackdown-jdk
ce qui me supprime la version 1.4.2.03-r15.

Et voilà tout devrait être propre pour relancer la mise à jour de ... 190 paquets.

5 - Plantage de gnome-base/orbit-2.14.19-r1

Bien sûr cela a planté, avec gnome-base/orbit-2.14.19-r1.

Donc lecture du summary.log (/var/log/portage/elog/summary.log) :

>>> Messages generated by process 25107 on 2011-10-07 17:23:07 CEST for package gnome-base/orbit-2.14.19-r1:

ERROR: compile
ERROR: gnome-base/orbit-2.14.19-r1 failed (compile phase):
  compile failure

Call stack:
    ebuild.sh, line   56:  Called src_compile
  environment, line 3381:  Called gnome2_src_compile
  environment, line 2656:  Called die
The specific snippet of code:
      emake || die "compile failure"

If you need support, post the output of 'emerge --info =gnome-base/orbit-2.14.19-r1',
the complete build log and the output of 'emerge -pqv =gnome-base/orbit-2.14.19-r1'.
The complete build log is located at '/var/tmp/portage/gnome-base/orbit-2.14.19-r1/temp/build.log'.
The ebuild environment file is located at '/var/tmp/portage/gnome-base/orbit-2.14.19-r1/temp/environment'.
S: '/var/tmp/portage/gnome-base/orbit-2.14.19-r1/work/ORBit2-2.14.19'

qui ne nous apprend pas grand chose. Donc allons voir le build.log, que l'on examine à partir de la fin afin de trouver la première cause de l'erreur, et on tombe sur :

libtool: link: cannot find the library `/usr/lib/libglib-2.0.la' or unhandled argument `/usr/lib/libglib-2.0.la'
make[3]: *** [orbit-idl-2] Erreur 1

Un problème de librairie, cela faisait longtemps. En se rendant sur place (cd /usr/lib/), effectivement je ne trouve pas de libglib-2.0.la (ls -al libg*). Il y a libglib-2.0.a, libglib.la, mais pas celle qu'il me faut. Je tente une réinstallation :

# emerge libtool-2.4-r1

qui, une fois terminé, me dit que d'anciennes versions sont installées ce qui nécessite de lancer un revdep-rebuild --library '/usr/lib/libltdl.so.3' avant de supprimer les anciennes librairies : rm '/usr/lib/libltdl.so.3'.

Mais le revdep-rebuild --library '/usr/lib/libltdl.so.3' ne me signale rien de particulier, et toujours pas de libglib-2.0.la.

A ce stade, ne faites pas comme moi, ne désinstallez pas orbit (desfois cela marche mais pas dans ce cas, orbit est vraiment nécessaire). Essayez plutôt :

# emerge dev-util/lafilefixer //si besoin
# lafilefixer --justfixit
# revdep-rebuild

Je pense que cela remet les choses dans l'ordre. Je ne peux l'affirmer car pendant le revdep-rebuild la batterie a lâché faute d'être alimentée (hé oui le cordon s'est enlevé petit à petit :-((

Mais à la remise en route et après un emerge --sync, la mise à jour (emerge --update --deep @world) démarre et passe orbit correctement, premier des 116 paquets restants.

6 - Mise à jour des fichiers de configuration

Avant de passer à l' emerge --depclean, j'en profite pour mettre à jour mes fichiers de configuration :

# etc-update
....
1) /etc/crontab
2) /etc/genkernel.conf // Beaucoup de choses ont été ajoutées, à voir
3) /etc/rc.conf
4) /etc/autofs/autofs_ldap_auth.conf (1)
5) /etc/autofs/auto.master (1)
6) /etc/autofs/auto.smb (1)
7) /etc/conf.d/keymaps (1) // Attention à bien garder le clavier français "fr-latin9"
8) /etc/conf.d/samba (1)
9) /etc/cups/cupsd.conf (1)
10) /etc/cups/cupsd.conf.default (1)
11) /etc/etherape/services (1)
12) /etc/init.d/apache2 (1)
13) /etc/init.d/autofs (1)
14) /etc/init.d/dbus (1)
15) /etc/init.d/hostname (1)
16) /etc/init.d/local (1)
17) /etc/init.d/localmount (1)
18) /etc/init.d/procfs (1)
19) /etc/init.d/pwcheck (1)
20) /etc/init.d/samba (1)
21) /etc/init.d/sysctl (1)
22) /etc/init.d/syslog-ng (1)
23) /etc/ssmtp/ssmtp.conf (1)
24) /etc/syslog-ng/syslog-ng.conf (1)
25) /etc/xdg/autostart/gsettings-data-convert.desktop (1)

Si vous avez fait des modifications à ces fichiers, vous les connaissez ... Pour ma part rien de particulier hormis ce que j'ai mis en commentaire et des modifications perso sur ssmtp.conf.

7 - Le temps des sueurs froides avec --depclean qui touche à gcc !

Bon maintenant passons à :

# emerge --depclean

Cette commande est dangereuse, car elle supprime les liens dynamiques qui normalement non plus lieu d'être. Dans le petit discours introductif au lancement de la commande, il est bien dit d'étudier sérieusement la liste des paquets qui vont être supprimés afin d'éviter toute erreur évidente. On peut éviter le nettoyage d'un paquet par la commande 'emerge --noreplace <atom>'.
Bien sûr pressée par le temps, je squeeze tout cela, y compris le warning en rouge

!!! 'app-editors/nano' (virtual/editor) is part of your system profile
!!! Unmerging it may be damaging to your system.

et mon depclean 'unmerge' :

- app-editors/nano
- dev-perl/URI
- sys-devel/gcc    //il s'agit ici de la version 4.4.5, la 'omitted', c.a.d celle qui reste
                   //en place est la 4.5.3-r1
- app-text/docbook-xml-dtd
- sys-kernel/gentoo-sources    //Il s'agit ici de la version 2.6.38-r6, les 'omitted', c.a.d
                               //celles qui restent en place sont la 2.6.24-r4, 2.6.30-r8,
                               //2.6.32-r7, 2.6.39-r3)
- app-editors/vim
- net-libs/neon
- net-alalyser/metasploit
- dev-perl/Term-ReadLine-Perl

Après coup, lorsque j'écris ces lignes, j'en ai des sueurs froides : je n'ai plus d'éditeur (nano et vim ont été supprimés, mais il me reste vi) et surtout la suppression de gcc m'inquiète car pendant l'unmerge j'ai eu comme message :

* gcc-config: Active gcc profile is invalide!
gcc-config: error: could not run/locate 'gcc'

Et mon inquiétude est fondée, car au revdep-rebuild suivant, j'ai, au premier paquet en recompilation :

configure: error: C compiler cannot create executables

 Cela me rappelle le point 4 de 17-Encore des problèmes de clavier et de souris – MàJ de juin 2010, intitulé "Aie ! le compilateur ne compile plus ou « C compiler cannot create executables »".

Je suis mes propres conseils:

# ls -al /etc/env.d/gcc/
config-i686-pc-linux-gnu
i686-pc-linux-gnu-4.5.3
.NATIVE → i686-pc-linux-gnu-4.4.5

Je change le lien en .NATIVE → i686-pc-linux-gnu-4.5.3 (# ln -s i686-pc-linux-gnu-4.5.3 .NATIVE) et les compilations peuvent reprendre.

J'ai recommencé tout de suite par nano et vim, puis par revdep-rebuild.

8 - Finalisation

J'ai réinstallé metasploit qui réinstalle Term-ReadLine-Perl, mais un emerge --depclean veut me les désinstaller de nouveau ?? Là je me souviens que j'ai introduit un nouvel USE dans mon make.conf, et qu'il serait judicieux de lancer :

# emerge --update --deep --newuse @world

et cela repart pour la mise à jour de 18 paquets.

Cette fois les commandes :

# emerge --depclean
# revdep-rebuild

ne trouvent rien à redire ! (sauf pour metasploit qui demande une màj via la commande : cd /usr/lib/metasploit && svn update)

9 - Quelques problèmes résiduels : clavier sous X

Après un redémarrrage, le clavier (et les touches spéciales) n'est pas du tout reconnu, alors que le touchpad fonctionnne !? Comme d'hab, je jette un oeil sur le /var/log/portage/elog/summary.log, et j'en profite pour faire tout ce que j'aurai du faire :

9.1 - 'For package x11-libs/libXi-1.4.3'

Some special keys and keyboard layouts may stop working
To fix them, recompile xorg-server

Mais j'ai aussi :
For package x11-base/xorg-server-1.10.4
A lire le guide de migration : http://www.gentoo.org/proj/en/desktop/x/x11/xorg-server-1.10-upgrade-guide.xml

qui dit que Xorg ne supporte plus l'autodetection utilisant 'xf86-input-keyboard' et 'xf86-input-mouse'. Il nous faut utiliser maintenant 'xf86-input-evdev'. Sinon point de vue configuration il n'y a rien de spécial à faire si on migre de la 1.9 (ce qui est mon cas).

J'en profite pour, comme indiqué, recompiler tous les drivers avec emerge portage-utils; qlist -I -C x11-drivers/
Puis je fais un emerge -va xf86-input-evdev, et mon clavier est de nouveau accessible avec toutes les touches spéciales sous Xorg.

9.2 - 'For package app-misc/ca-certificates-20110502-r1'

You MUST remove the broken symlinks
Otherwise any SSL validation that use the directory may fail!
To batch-remove them, run :
find -L /etc/ssl/certs/ -type l -exec rm {} +

9.3 - 'For package sys-apps/openrc-0.8.3-r1'

/etc/conf.d/net.example should be removed.
The new file is /usr/share/doc/openrc-0.8.3-r1/net.example

De même pour /etc/conf.d/wireless.example

Donc net.example à voir (et peut-être aussi le guide de migration sous http://www.gentoo.org/doc/fr/openrc-migration.xml)

9-4 'For package x11-libs/gtk+-2.24.4'

Please install app-text/evince for print preview functionality
Donc, je m'exécute : emerge -va app-text/evince qui m'installe aussi libspectre

9.4 'For package app-portage/portage-utils-0.3.1'

Ici vous trouverez ce texte :

/etc/portage/postsync.d/q-reinitialize has been installed for convenience
If you wish for it to be automatically run at the end of every --sync:
   # chmod +x /etc/portage/postsync.d/q-reinitialize
Normally this should only take a few seconds to run but file systems
such as ext3 can take a lot longer.  To disable, simply do:
   # chmod -x /etc/portage/postsync.d/q-reinitialize

Vous serez sans doute aussi perplexe que moi, ne sachant à quoi peut bien servir ce script q-reinitialize qui se résume à lancer /usr/bin/q. Une recherche plus tard, je trouve ceci : "Il met à jour le cache utilisé par le paquet portage-utils (qfile, qdepends, qpkg, ...)[1]. Si vous ne l'utilisez pas, vous n'avez pas besoin de lancer q-reinitalize non plus."

J'ai opté pour l'activation.

[1] Avec la commande find /usr/bin -type l -iname q, j'ai trouvé 15 liens vers /usr/bin/q : qcheck, qfile, qtbz2, qsize, quse, qgrep, qdepends, qatom, qcache, qpkg, qxpak, qmerge, qsearch, qlist, qlop.

9.5 - Nettoyage disque

Mon petit disque dur de 18Go commence à être plein (15Go utilisés), je lance donc un nettoyage comme je l'ai expliqué sur la page 16-Libérer de l'espace mémoire

Actions sur le document