Logithèque ubuntu bug. [Fermé]

Signaler
Messages postés
42
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
30 janvier 2012
-
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
-
Bonjour, je suis nouveau sur linux (ubuntu 10.04) et j'ai installer plusieurs logiciel ( qui on fonctionner) puis, depuis 2 jours quand j'essaie d'installer ou de supprimer un logiciel sa m'afficher une erreur. Alors j'ai chercher sur des forums et j'en et vu un ou il disait de taper software-center dans le terminal. Je l'ai fais et sa m'affiche sa :

/usr/share/software-center/softwarecenter/app.py:1190: Warning: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed
self.window_main.show_all()
2011-09-07 17:47:26,074 - softwarecenter.fixme - WARNING - logs to the root logger: '('/usr/lib/pymodules/python2.7/zeitgeist/client.py', 367, 'reconnect_monitors')'
2011-09-07 17:47:26,072 - zeitgeist.client - INFO - Reconnected to Zeitgeist engine...
/usr/share/software-center/softwarecenter/SimpleGtkbuilderApp.py:50: Warning: g_object_set_qdata: assertion 'G_IS_OBJECT (object)' failed
gtk.main()

J'ai chercher partout et je n'ai pas trouvé de solution. Pouvez-vous m'aidé?
Merci d'avance.


2 réponses

Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
7 139
Visiblement ton interface graphique a un problème, donc tu peux utiliser les commandes apt qui sont sous-jacentes :

sudo apt-get update
sudo apt-get upgrade


Sinon pour info, ubuntu 10.04 a déjà un an, c'est un peu dommage de ne pas avoir installé directement la version actuelle (11.04, bientôt 11.10). Tu peux la mettre à jour comme indiqué ici :
http://doc.ubuntu-fr.org/migration#guides_specifiques_de_mise_a_niveau

Bonne chance
Messages postés
42
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
30 janvier 2012

dpkg : erreur de traitement de wbritish (--remove) :
le sous-processus script post-removal installé a retourné une erreur de sortie d'état 1
Aucun rapport « apport » écrit car MaxReports a déjà été atteint
Des erreurs ont été rencontrées pendant l'exécution :
wbritish
E: Sub-process /usr/bin/dpkg returned an error code (1)
yannick@Nesle:~$

(lol ok ... ( moi perso j'ai pas l'impression d''avancer xD))
Messages postés
2334
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 mai 2020
143
punaise de wbritish...
sudo gedit /var/lib/dpkg/info/wbritish.postrm

On remplace ce qu'il y a dedans par :
#!/bin/bash
/bin/true

Enregistre et ferme puis :
sudo apt-get autoremove
Messages postés
42
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
30 janvier 2012

dpkg : erreur de traitement de man-db (--configure) :
le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
Aucun rapport « apport » écrit car MaxReports a déjà été atteint
Des erreurs ont été rencontrées pendant l'exécution :
man-db
E: Sub-process /usr/bin/dpkg returned an error code (1)
yannick@Nesle:~$

(j'ai l'impression d'avoir bug/bug U_u...)
Messages postés
2334
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 mai 2020
143
Oui.. tu as un foutu bronx visiblement..
Bon on voit man-db et s'il y a autre chose on reprend demain, je suis mort moi.. sauf si quelqu'un prend la suite..
sudo gedit /var/lib/dpkg/info/man-db.postrm

Et tu me copie colle le résultat stp
Messages postés
42
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
30 janvier 2012

#!/bin/sh -e

oldcatdir="/var/catman"
catdir="/var/cache/man"

case $1 in
purge)
# removing all catpage hierarchies
if [ -d $oldcatdir ]; then
echo " Removing catpages as well as $oldcatdir hierarchy."
rm -rf $oldcatdir 2>/dev/null || true
fi
if [ -d $catdir ]; then
echo " Removing catpages as well as $catdir hierarchy."
rm -rf $catdir 2>/dev/null || true
fi
;;

abort-install|abort-upgrade)
if [ -e /etc/cron.daily/man.moved-by-preinst ] && \
[ ! -e /etc/cron.daily/man ]; then
mv /etc/cron.daily/man.moved-by-preinst /etc/cron.daily/man
fi
if [ -e /etc/cron.weekly/catman.moved-by-preinst ] && \
[ ! -e /etc/cron.weekly/catman ]; then
mv /etc/cron.weekly/catman.moved-by-preinst /etc/cron.weekly/catman
fi
;;
esac

# Automatically added by dh_installdebconf
if [ "$1" = purge ] && [ -e /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_purge
fi
# End automatically added section
(bonne nuit)
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
7 139
Bon je vais tenter de reprendre le flambeau mais j'avoue ne pas avoir tout lu.

D'abord quelques notions pour y voir plus clair.

Paquets et dépendances

Un paquet A est une brique logicielle qui dépend potentiellement d'autres paquets B,C, D. Ainsi B, C, D doivent être installés avant A, puis seulement ensuite A peut s'installer.

La même problématique s'applique quand on désinstalle. Si on désinstalle B (ou C ou D) avant A, on casse A. On doit donc d'abord désinstaller A pour pouvoir déinstaller B. Le fait de déinstaller B ne requiert rien au niveau de C ou D.

On voit donc que l'ordre dans lequel on installe/désinstalle les paquets est important.

apt et dpkg

Le gestionnaire de paquets debian fonctionne en plusieurs couches. Les deux couches qui nous intéressent sont :

- dpkg : la couche "bas niveau" : quand je déploie A, je vérifie au préalable que B, C, D sont présents, sinon je plante. dpkg ne fait rien pour essayer d'arranger le problème, ce n'est pas son problème (c'est celui d'apt). dpkg sait donc ce qui est installé et dans quelle version, et il sait donc si A peut ou non être installé avec succès.

- apt : on voit que ce qui manque à dpkg c'est un plan de bataille : télécharger A, B, C, D, puis invoquer dpkg dans le bon ordre. Pour cela, apt doit savoir où télécharger les paquets, et c'est le rôle de /etc/apt/sources.list. apt peut demander à dpkg ce qui manque et dans ce cas là, télécharger ce qui manque. Ensuite il appelle dpkg dans le bon ordre pour faire le boulot.

Problème 1 : on voit que dpkg, au moment de vérifier les dépendances, fait des vérifications. Ainsi si un autre dpkg travaillait au même moment, les deux pourraient se tirer dans les pattes et faire n'importe quoi. C'est la raison pour laquelle seul un dpkg doit tourner à la fois.

Réponse au problème : pour garantir que dpkg n'est lancé qu'une seule fois, il place un verrou (c'est un fichier vide, en l'occurrence /var/lib/dpkg/lock) quand il travaillle. Si on lance un autre dpkg, il verra ce verrou et refusera de poursuivre car il craindra qu'un autre dpkg tourne déjà (cf le message d'erreur que tu as). Note que le choix d'utiliser un verrou plutôt que de regarder quels programmes tourne est un choix délibéré mais nous n'entrerons pas dans ces détails techniques : le choix qui a été fait, c'est de poser un verrou :) S'il y a un verrou on stoppe ; sinon on enchaîne. Une fois que dpkg se termine, il retire le verrou. Ainsi on pourra par la suite à nouveau lancer dpkg.

Conséquence : si dpkg plante lamentablement avant d'avoir retiré le verrou, on se retrouve avec un verrou résiduel qui n'a plus lieu d'être. Ça peut arriver par exemple si tu as éteint violemment ta machine alors que dpkg travaillait. Dans ce cas, il faut vérifier que dpkg ne tourne pas est dans ce cas, supprimer le verrou avec la commande rm.

Précisions : installer/désinstaller un programme (ou le virer) a un impact important sur le système. On considère qu'un programme a un impact important s'il peut pénaliser certains utilisateurs de la machine. dpkg est donc clairement dans cette catégorie (et en conséquence, apt aussi). Ainsi toutes ces commandes requierent des droits administrateurs (root). Sous Ubuntu on les acquiert via sudo. C'est la raison pour laquelle on doit soit lancer "apt-get update" dans un terminal root, soit lancer "sudo apt-get install ...". Note que tous les utilisateurs n'ont pas forcément la possibilité d'utiliser sudo. Mais pour simplifier cette distinction, sous ubuntu, l'utilisateur qui a été créé à l'installation peut le faire.

Conclusion : la présence d'un verrou peut être justifiée ou non. On supprime ce verrou comme mentionné par boisdulait quand il est n'est pas justifié.

sudo rm /var/lib/dpkg/lock


Conséquence : on voit que la pose et la dépose de ce verrou n'est pas anodine. Ainsi créer ce fichier requiert des droits root. Si dpkg est lancé sans droits root, il ne peut pas poser ce verrou et donc poursuivre proprement la suite des opérations. Ainsi, oublier le sudo peut engendrer le message

E: Impossible d'ouvrir le fichier verrou /var/lib/dpkg/lock - open (13: Permission non accordée)
E: Impossible de verrouiller le répertoire d'administration (/var/lib/dpkg/). Avez-vous les privilèges du superutilisateur ?


Problème 2 : quand on installe un paquet, on le décompresse et ensuite on le configure. Si le gestionnaire de paquet plante entre ces deux étapes, il n'a pas fini le travail jusqu'au bout et donc le paquet est partiellement installé. On est typiquement dans ce cas quand ce message apparaît :

E: dpkg a été interrompu. Il est nécessaire d'utiliser « sudo dpkg --configure -a » pour corriger le problème


Réponse au problème : dpkg maintient à chaque fois dans quel état est un paquet (est-il décompressé, est-il configuré, est-il présent sur la machine...). Si quand on le relance, il détecte des paquets installés, il demande à être remis à plat typiquement avec la commande :

sudo dpkg --configure -a


Problème 3 : quand on installe un paquet, on décompresse en réalité une archive compressée au bon endroit. Mais parfois il faut au préalable préparer le terrain (avant de décompresser), ou au contraire le niveler :p (après avoir décompresser).

Réponse au problème : un paquet peut contenir des "scripts" qui se déclenchent juste avant ou juste après sa décompression (pre inst ; post inst). Le même principe existe pour une désinstallation (pre rm ; post rm). C'est visiblement dans ceux-ci que tu es allé farfouiller sur la fin, mais normalement tu n'es pas sensé le faire.

apt-get vs aptitude

Ce sont deux outils qui permettent tout deux de manipuler apt. Pour des raisons assez mystérieuses (pour ne pas dire constestables) ubuntu a délibérément décidé de ne plus installer aptitude par défaut sur ses dernières versions, ce qui à mon humble avis n'est pas le meilleur choix. En effet, dans sa résolution de dépendances, aptittude est souvent plus malin qu'apt-get et débloque des situations ou apt-get plante lamentablement.

C'est ce qui t'es arrivé quand tu as lancé :

yannick@Nesle:~$ sudo aptitude update
sudo: aptitude: command not found 


Ainsi pour résoudre le problème il suffit d'installer la commande aptitude, qui est fournie par le paquet aptitude (c'est quand même bien fait, le paquet porte le nom de la commande qu'il fournit, ils sont vraiment malins chez debian :p)

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install aptitude


Bon il faut bien voir que parfois le nom du paquet est moins intuitif. Mais encore une fois debian a tout prévu, il y a des moteurs de recherche pour toujours trouver quel est le paquet qu'il nous faut (apt-cache, apt-file). Mais bon ça on laisse de côté pour le moment ;)

Bon et mon problème dans tout ça ?

La première bonne nouvelle, c'est que cette longue introduction t'explique ce qui s'est passé jusqu'ici et donc si tu as pris le temps de lire et que tu as compris, si l'erreur se représente, tu sauras la résoudre par toi-même. Bref apt devrait être un peu plus obéissant.

But du jeu : aptitude marchant mieux qu'apt-get, on va lui demander de tout mettre à jour. Je n'ai pas suivi toute la discussion mais si j'ai bien suivi un paquet se désinstalle mal. Pour que je vois où on en est, copie colle le résultat de :

sudo aptitude update
sudo aptitude safe-upgrade


Bonne chance
Messages postés
2334
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 mai 2020
143
pourtant on avait effectué ces commandes là déjà... je ne pige pas. Bon je vais m'abstenir mtn :)

Bonne journée
Messages postés
42
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
30 janvier 2012

LOL de même, et merci.
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
7 139
Ben manifestement l(upgrade n'a pas été faite. Étape suivante

sudo aptitude safe-upgrade


Bonne chance
Messages postés
42
Date d'inscription
mercredi 7 septembre 2011
Statut
Membre
Dernière intervention
30 janvier 2012

Terminal se ferme automatiquement je fais quoi après?
Messages postés
29982
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
22 juillet 2021
7 139
Normalement ce n'est pas sensé arriver, aptitude est sensé te rendre l'invite de commande dans ton terminal.

Relance un aptitude safe-upgrade pour voir s'il a tout mis à jour. En cas de message d'erreur cf le message ci-dessus pour réparer. L'objectif est d'arriver à 0 paquets à mettre à jour quand tu fais une upgrade.

Bonne chance