it-swarm-pt.tech

Procedimento ideal para atualizar o Gentoo Linux?

É assim que eu atualizo o Gentoo há muito tempo. Este é o método recomendado? Alguma dica ou método melhor para usar?

emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all
23
cowgod

Parece que você tem tudo coberto. A única outra dica é talvez levar um pouco mais devagar do que uma atualização por atacado cega. Você sempre pode atualizar os pacotes ou cadeias de dependência individualmente com emerge -DNuav <atom> em vez de world (use --oneshot para coisas que você não deseja adicionar ao arquivo mundial, como bibliotecas do sistema, por exemplo).

Observe que é sempre mais fácil fazer isso se você se mantém atualizado regularmente, em vez de procurar atualizações em lote monolíticas a cada dois meses. Além disso, para evitar muitas surpresas, convém se inscrever em uma das listas de discussão como gentoo-user (AVISO: ~ 100 emails por dia nesta lista), pois praticamente todos os principais problemas de atualização provavelmente aparecerão na lista com muita discussão explicando como resolvê-los.

Eu acho que a próxima grande atualização de "problema" será a migração para o openrc assim que estiver estável (foi feita no ~ Arch no meio do ano passado com apenas alguns problemas, principalmente com alterações na rede).

5
Ophidian

Eu tenho usado quase as mesmas etapas que você faz, exceto:

  • eix-sync ao invés de emerge --sync porque eu gosto de ver as alterações na árvore do portage. Isso é especialmente bom para perceber os pacotes que talvez eu queira instalar que são novos na árvore.

  • layman -S (ocasionalmente) antes do surgimento do principal para sincronizar as alterações nas sobreposições.

  • eclean-dist -d depois de revdep-rebuild para limpar tarballs obsoletos. Eu faço isso após cada emergência, porque os downgrads de pacotes não são tão comuns.

  • eix-test-obsolete como a última etapa para ajudar a manter meus arquivos/etc/portage organizados e atualizados. Isso também me informa quando instalo pacotes que foram completamente removidos do portage, por isso preciso obter o ebuild do repositório. Um exemplo recente, eu tenho que mascarar todas as versões do iproute2> 2.6.22.20070710 devido ao kernel mais antigo sendo executado no meu Xen VPS, mas ele foi removido recentemente do portage.

eix-sync e eix-test-obsolete estão no app-portage/eix.

eclean-dist está no app-portage/gentoolkit.

8
Van Gale
  1. emerge --sync ou eix-sync ou emerge-delta-webrsync e eix-update
  2. emerge -av portage
  3. eclean-dist

Verifique se um dos cabeçalhos do linux, glibc, binutils, libtool ou gcc possui atualização magor (por exemplo, atualizações do gcc de 4.6 a 4.8). Se não estiver, vá para a etapa 11.

Reconstrução completa:

  1. rm -rf PKGDIR/* Substitua PKGDIR pelo seu caminho para empacotar dir!
  2. emerge -av linux-headers glibc binutils gcc-config libtool gcc
  3. gcc-config <number of new gcc> Alterne para o novo gcc
  4. source /etc/profile
  5. emerge -avb glibc binutils gcc libtool
  6. emerge -avbke system
  7. emerge -avbke world

Se você tiver algum problema na etapa 10 ou 11, corrija-o e tente novamente

Atualizar mundo:

  1. Limpe seu arquivo mundial /var/lib/portage/world de pacotes desnecessários e verifique /etc/portage entidades
  2. fixpackages
  3. emerge -avuDN world
  4. eselect python update
  5. python-updater -- -av
  6. Perl-cleaner --all -- -av
  7. emerge -a --depclean
  8. revdep-rebuild -i -- -av

Se você tiver algum problema nas etapas 14-18, corrija-o e repita todas as etapas da etapa 13

  1. etc-update ou dispatch-conf
  2. glsa-check -vp affected Você pode ter pacotes afetados nos slots após a atualização
  3. emaint --check all
5
user261123
glsa-check -t all
glsa-check -f all

É isso que você deve executar primeiro. Não é necessário se você atualizar todos os pacotes.

Ah, e eu prefiro cfg-update;)

3
laurentb

Se seu objetivo é ter o mais recente absoluto de todos os pacotes, sim, isso parece cobrir todas as bases. Estou surpreso que isso funcionou para você por um longo tempo, no entanto, porque eu imaginaria que você seria mordido com frequência por blocos, deps quebrados etc. Nos últimos dois anos, tomei muito mais cuidado com a atualização por atacado, optando por fazê-lo gradualmente após visualizar a árvore de atualização. O desenvolvimento do Gentoo parece ter passado o auge. Talvez seja por causa da ascensão do Ubuntu.

De qualquer forma, outra coisa que você pode tentar, apenas para ser realmente exigente com todo o processo, é limpar seus distfiles. Existem scripts por aí, se você pesquisar.

3
Adam D'Amico

Isto é o que eu faço:

emerge --sync         //Synchronize the package manager with the latest 
                      //version of each package.


emerge -aDvNu system  //updates the system, but only important if you want the
                      //latest stable version of the actual compiler and libraries
                      //with the core system.

emerge -uDNav world   //world means everything we've asked to be emerged before
                      //this does not include things that came pre installed.
                      //N means if you change your use directives in 
                      //your make.conf file to pull in the new packages.

emerge -av depclean   //removes libraries or programs that don't have any other 
                      //dependencies because of an update.


revdep-rebuild        //means if something is broken by an update, it 
                      //recompiles it.  Fixes dynamic and static linking problems.

Se você não entender completamente os comentários, leia isso porque é a autoridade sobre como atualizar seus pacotes do gentoo.

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1

1
Eric Leschinski

É assim que faço no meu VPS:

etapa 0 (de/etc/crontab)

0 0   * * *     root    emerge --sync &> /dev/null

passo 1:

emerge --update --deep --newuse world -av

passo 2:

emerge --depclean && revdep-rebuild && eclean-pkg && rm /usr/portage/distfiles/*
0
yanchenko

Parece bom, embora eu não fosse tão rápido em executar depclean.

A menos que você exija um requisito como pouco espaço no disco rígido, você poderá voltar e limpar com intvals menos regulares. Não há mal em tê-los por perto por um curto período. Se você teve a sorte de notar alguns pacotes quebrados após a atualização, certifique-se de que eles não resultem da remoção de dependências frouxas.

0
Dan Carley

Por um longo tempo, eu sempre usei este procedimento:

emerge -f --update --newuse --deep world && emerge --update --newuse --deep world

Eu, para os meus, prefiro atualizar durante a noite. Mas, às vezes, acontece que algo falha e você precisa fazer o download de todos (ou alguns) programas novamente.

Talvez a opção --newuse não seja necessária, mas muitas vezes estou editando meu make.conf para que faça sentido para mim.

0
hajowieland

Seu processo está correto, embora a execução de todos os comandos provavelmente não seja necessária, geralmente apenas faço um mundo de sincronização e atualização. O Emerge informará normalmente se você precisa executar um script para reconstruir o arquivo, como durante uma grande atualização Python, e também informará quando mesclar as alterações de configuração. Como o Gentoo não tem realmente um caminho de atualização de versão para versão No momento em que surgir no mundo, você terá a versão mais recente.

0
John Downey