Le centre logiciel prend un certain temps à charger

10

J'ai un ordinateur rapide (excellent processeur, bon SSD) mais le Software Center prend 30 bonnes secondes pour se charger. Ce n'est pas un gémissement, je pense qu'il pourrait y avoir quelque chose de mal. Synaptic prend une seconde à charger.

J'ai couru strace software-centerpour voir s'il débordait le disque (c'est un SSD - je ne l'entends pas) et il statting et essaye d'ouvrir tout un tas de fichiers. Voici un extrait:

open("/usr/local/lib/python2.6/dist-packages/FlexGet-1.0r1465-py2.6.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/FlexGet-1.0r1465-py2.6.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/FlexGet-1.0r1465-py2.6.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/python2.6/dist-packages/progressbar-2.3_dev-py2.6.egg/StringIO", 0x7fff19d3af30) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/progressbar-2.3_dev-py2.6.egg/StringIO.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/progressbar-2.3_dev-py2.6.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/progressbar-2.3_dev-py2.6.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/progressbar-2.3_dev-py2.6.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/python2.6/dist-packages/pynzb-0.1.0-py2.6.egg/StringIO", 0x7fff19d3af30) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/pynzb-0.1.0-py2.6.egg/StringIO.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/pynzb-0.1.0-py2.6.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/pynzb-0.1.0-py2.6.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/pynzb-0.1.0-py2.6.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/python2.6/dist-packages/PyRSS2Gen-1.0.0-py2.6.egg/StringIO", 0x7fff19d3af30) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyRSS2Gen-1.0.0-py2.6.egg/StringIO.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyRSS2Gen-1.0.0-py2.6.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyRSS2Gen-1.0.0-py2.6.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyRSS2Gen-1.0.0-py2.6.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/python2.6/dist-packages/html5lib-0.90-py2.6.egg/StringIO", 0x7fff19d3af30) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/html5lib-0.90-py2.6.egg/StringIO.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/html5lib-0.90-py2.6.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/html5lib-0.90-py2.6.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/html5lib-0.90-py2.6.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/python2.6/dist-packages/PyYAML-3.09-py2.6-linux-x86_64.egg/StringIO", 0x7fff19d3af30) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyYAML-3.09-py2.6-linux-x86_64.egg/StringIO.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyYAML-3.09-py2.6-linux-x86_64.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyYAML-3.09-py2.6-linux-x86_64.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/PyYAML-3.09-py2.6-linux-x86_64.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/local/lib/python2.6/dist-packages/transmissionrpc-0.6-py2.6.egg/StringIO", 0x7fff19d3af30) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/transmissionrpc-0.6-py2.6.egg/StringIO.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/transmissionrpc-0.6-py2.6.egg/StringIOmodule.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/transmissionrpc-0.6-py2.6.egg/StringIO.py", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/python2.6/dist-packages/transmissionrpc-0.6-py2.6.egg/StringIO.pyc", O_RDONLY) = -1 ENOENT (No such file or directory)

Ce pourrait être un hareng rouge. Plus tard, il s'arrête à ceci:

poll([{fd=3, events=POLLIN}], 1, 25000) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"l\2\1\1\v\0\0\0\3\0\0\0=\0\0\0\6\1s\0\7\0\0\0:1.3497\0"..., 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 91
recvmsg(3, 0x7fff8c57cc00, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
sendmsg(3, {msg_name(0)=NULL, msg_iov(2)=[{"l\1\0\1\0\0\0\0\3\0\0\0{\0\0\0\1\1o\0\32\0\0\0/com/ubu"..., 144}, {"", 0}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 144
poll([{fd=3, events=POLLIN}], 1, 25000

Et puis il recommence ... Ces deux pauses représentent la majeure partie du temps de chargement.

Et puis il se déroule vraiment avec des milliers de lignes d'interrogation / lecture / temporairement indisponibles.

Alors qu'est-ce qui se passe ici? Pourquoi le centre logiciel analyse-t-il ce qui semble être un package python possible StringIO? Punaise?

Alors pourquoi s'arrête-t-il à ce qui ressemble à une demande Web à quelque chose.ubuntu.com (ne peut pas voir le message complet)? Pourquoi parle-t-il à ubuntu.com de toute façon?

Oli
la source
+1, c'est la même chose sur tous les ordinateurs sur
lesquels
@Oli De quelle version d'Ubuntu s'agit-il? J'utilise Lucid depuis un certain temps maintenant et je n'ai jamais rencontré cela.
Mussnoon
Je peux confirmer: c'est extrêmement lent! J'utilise Synaptic infact.
Andrea Grandi
@Mussnoon: Maverick. Et ça n'a été aussi lent que depuis Maverick. Je pense que cela pourrait avoir quelque chose à voir avec les parties ajoutées à l'achat ou à authentification unique de la nouvelle version ... Quoi qu'il en soit, le faire caler comme ça est assez horrible.
Oli
3
Cela devrait probablement être signalé comme un bogue.
Jorge Castro

Réponses:

5

Il semble extraire une vue entièrement à jour des packages disponibles (comme quoi apt-get update), ce qui peut prendre un certain temps en fonction de la date à laquelle le cache est obsolète, de la rapidité avec laquelle les référentiels logiciels répondent et de la vitesse de votre connexion réseau.

Comme mentionné dans les commentaires, ce manque d'interactivité lors de l'actualisation semble être un bug.

Kees Cook
la source
J'accepterais cela comme une réponse si Aptitude, Synaptic ou même simplement apt-get updatefaire la même chose prenait n'importe où à peu près au même moment. Y compris moi en tapant mon mot de passe time bash -c "sudo apt-get update" retourne 0m2.446s. Un run chaud (juste après sans entrée de mot de passe) a pris 0m0.572s. Le SC prend systématiquement> 30 secondes, donc si c'est ce qui cause le retard, le bogue est bien plus qu'un simple problème d'interactivité.
Oli
Hm, bizarre. Cela m'a pris environ 30s la première fois que je l'ai couru, puis cela n'a pris que quelques instants. "30 secondes" est toujours un drapeau rouge pour moi que quelque chose arrive à expiration sur DNS. Quoi qu'il en soit, l'ouverture d'un bogue aurait le plus de sens.
Kees Cook
Savez-vous s'il y a quelque chose que je peux envelopper qui examine uniquement son trafic réseau?
Oli
Et je pensais que j'exagérais, mais il s'avère que je suis plus patient que je ne me le reconnais. Je viens de lancer le centre logiciel avec time. 1m.55.410s. Aie.
Oli
Habituellement, je démarre simplement une machine virtuelle et j'essaie de la reproduire pendant l'exécution de tcpdumpou wireshark. Mais ce serait bien d'avoir un moyen de le faire. J'ai demandé: askubuntu.com/q/11709/721
Kees Cook
0

Je rencontre le même problème. Lorsque j'ouvre le centre logiciel pour la première fois, il s'ouvre rapidement. Ensuite, je le ferme, mais je trouve que le processus du centre logiciel n'est pas tué. La deuxième fois que je l'ouvre, il faudra beaucoup de temps pour l'ouvrir. La méthode consiste à supprimer manuellement le processus du centre logiciel après avoir fermé le centre logiciel.

J'utilise ubuntu11.04 amd64 arch dans le thinkpad w500.

Waterloo2005
la source