Dica :: Portage lento? eis a solução!


Recentemente andava meio irritado com a lentidão do Portage para sincronizar o repositório e calcular as dependências para a atualização completa do sistema, só nesse último caso uma espera irritante de mais de 10 minutos, mas como diz o ditado “quem procura: acha”… encontrei a solução na própria wiki do projeto.

Aqui os passos por mim efetuados para atualizar o sistema (lembrando que aqui uso o git como método de sincronização), são realizados por meio de alias, ei-los:

sync='sudo emerge --sync'
@world='sudo emerge --ask --jobs --update --newuse --deep @world'

Simplificando:

$ sync; @world
interrupção na tentativa de rodar um @world aos quase 10 minutos!

O que ocorre é que esta lentidão é derivada da presença de dados inválidos em /var/cache/edb/dep, como visto nas imagens abaixo:

Este slideshow necessita de JavaScript.

Então como visto nas referências ao fim da dica, a solução é executar (aqui usei sudo, mas recomenda-se rodar como root):

# emerge --regen

Este slideshow necessita de JavaScript.

Assim diz a manpage do emerge:

–regen
Causes portage to check and update the dependency cache of all
ebuilds in the portage tree. The cache is used to speed up
searches and the building of dependency trees. This command is
not recommended for rsync users as rsync updates the cache using
server-side caches. If you do not know the differences between
a ‘rsync user’ and some other user, then you are a ‘rsync user’
:). Rsync users should simply run emerge –sync to regenerate
the cache. After a portage update, rsync users may find it con‐
venient to run emerge –metadata to rebuild the cache as portage
does at the end of a sync operation. In order to specify paral‐
lel –regen behavior, use the –jobs and –load-average options.
If you would like to generate and distribute cache for use by
others, use egencache(1).

Após sua conclusão (demora um bocado, creio que mais de 1 hora em meu PC), execute os passos novamente para sincronizar o repositório e atualizar o sistema:

# emerge --sync
# emerge --ask --jobs --update --newuse --deep @world

Agora… nas imagens abaixo, notam-se a rapidez na sincronização do repositório e a redução para apenas 2min 39s no calculo das dependências para compilação!

Este slideshow necessita de JavaScript.

Ah sim… os tais dados inválidos, talvez refiram-se a minha tentativa de utilizar o repositório reagentoo para poder instalar o QMPlay2 e testando a dica do site Dose Extra: Instalando pacotes snap no Gentoo.

No dia seguinte, repeti a execução do emerge –regen, mas antes executei:

# rm -rfv /var/cache/edb/dep/*

E tudo ficou como deveria estar! o Portage rápido como sempre!

┌─(~)─────────────────────────────────────────────────────(edps@gentoo:pts/0)─┐
└─(20:12:52)──> du -sh /var/cache/edb/dep/usr/portage/          ──(qua,mai16)─┘
163M	/var/cache/edb/dep/usr/portage/
┌─(~)─────────────────────────────────────────────────────(edps@gentoo:pts/0)─┐
└─(20:13:09)──> du -sh /usr/portage/                            ──(qua,mai16)─┘
1,7G	/usr/portage/
┌─(~)─────────────────────────────────────────────────────(edps@gentoo:pts/0)─┐
└─(20:14:03)──>                                                 ──(qua,mai16)─┘

Referências.

After emerge –sync, emerge “Calculating dependencies” takes an extremely long time. Similarly, after cvs update, “RepoMan scours the neighborhood” takes an extremely long time.

“emerge -NDuvp world” takes forever calculating dependencies after “emerge sync”

t+

Anúncios
Dica :: Portage lento? eis a solução!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s