Software Center leva um tempo para carregar

10

Eu tenho um computador rápido (ótimo processador, bom SSD), mas o Software Center demora 30 segundos para carregar. Isso não é um problema, acho que pode haver algo errado. Synaptic leva um segundo para carregar.

Corri strace software-centerpara ver se estava danificando o disco (é um SSD - não consigo ouvi-lo) e está declarando e tentando abrir uma grande quantidade de arquivos. Aqui está um trecho:

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)

Isso pode ser um arenque vermelho. Mais tarde, faz uma pausa com isso:

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

E então ele faz isso de novo ... Essas duas pausas são responsáveis ​​pela maior parte do tempo de carregamento.

E então ele realmente se destaca com milhares de linhas de pesquisa / leitura / temporariamente indisponíveis.

Então, o que diabos está acontecendo aqui? Por que o Software Center está verificando o que parece ser um pacote python possível StringIO? Erro?

Então, por que ele está parando com o que parece uma solicitação da Web para something.ubuntu.com (não pode ver a mensagem completa)? Por que está falando com o ubuntu.com?

Oli
fonte
+1, é o mesmo em todos os computadores em que instalei o Ubuntu, por isso temos que esperar por uma correção.
Praweł
@Oli Que versão do Ubuntu é essa? Estou usando o Lucid há um tempo e nunca me deparei com isso.
Mussnoon 5/11/10
Posso confirmar: é extremamente lento! Eu uso o Synaptic infact.
Andrea Grandi
@Mussnoon: Maverick. E tem sido tão lento desde Maverick. Eu acho que pode ter algo a ver com as partes adicionadas de compra ou de logon único da nova versão ... De qualquer forma, tê-lo parado dessa maneira é bastante horrível.
Oli
3
Provavelmente isso deve ser relatado como um bug.
Jorge Castro

Respostas:

5

Parece estar buscando uma exibição totalmente atualizada dos pacotes disponíveis (como o que apt-get updatefaz), o que pode demorar um pouco, dependendo de quão desatualizado o cache está, da rapidez com que os repositórios de software respondem e da velocidade do seu armazenamento. conexão de rede.

Como mencionado nos comentários, essa falta de interatividade durante a atualização parece um bug.

Kees Cook
fonte
Eu aceitaria isso como uma resposta se Aptitude, Synaptic ou até mesmo apt-get updatefazer o mesmo levasse quase o mesmo tempo. Se eu digitar minha senha, time bash -c "sudo apt-get update" retornará 0m2.446s. Uma execução a quente (logo após sem entrada de senha) levou 0m0.572s. O SC leva consistentemente> 30s; portanto, se é isso que está causando o atraso, o bug é muito mais do que apenas um problema de interatividade.
Oli
Estranho. Demorou cerca de 30 anos na primeira vez que o executei, depois demorou apenas alguns instantes. "30 segundos" é sempre um sinal vermelho para mim de que algo está atingindo o tempo limite no DNS. Independentemente disso, abrir um bug faria mais sentido.
Kees Cozinhe
Você sabe se há algo em que eu possa envolvê-lo que examine apenas o tráfego de rede?
Oli
E eu pensei que estava exagerando, mas sou mais paciente do que acredito. Apenas executei o software center com time. 1m.55.410s. Ai.
Oli
Normalmente, eu apenas inicio uma VM e tento reproduzi-la lá enquanto estiver executando tcpdumpou wireshark. Mas seria bom ter uma maneira de fazer isso. Eu perguntei: askubuntu.com/q/11709/721
Kees Cook
0

Eu encontro o mesmo problema. Quando abro o centro de software pela primeira vez, ele é aberto rapidamente. Então eu o fecho, mas acho que o processo do centro de software não é morto. A segunda vez que o abro, levará muito tempo para abrir. O método é que eu mato o processo do centro de software manualmente depois de fechar o centro de software.

Eu uso o ubuntu11.04 amd64 arch no thinkpad w500.

waterloo2005
fonte