it-swarm-es.com

Procedimiento óptimo para actualizar Gentoo Linux?

Así es como he estado actualizando Gentoo durante mucho tiempo. ¿Es este el método recomendado? ¿Alguna trampa o mejores métodos 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 lo tienes cubierto. El único otro consejo es quizás tomarlo un poco más lento que una actualización mayorista ciega. Siempre puede actualizar los paquetes o las cadenas de dependencia individualmente con emerge -DNuav <atom> en lugar de world (use --oneshot para cosas que no desea agregar al archivo mundial, como las bibliotecas del sistema, por ejemplo).

Tenga en cuenta que siempre es más fácil hacerlo si se mantiene actualizado regularmente en lugar de buscar actualizaciones de lotes monolíticos cada dos meses. Además, para evitar demasiadas sorpresas, puede ser útil suscribirse a una de las listas de correo como gentoo-user (ADVERTENCIA: ~ 100 correos al día en esta lista), ya que es probable que aparezcan en la lista prácticamente todos los problemas de actualización importantes, con mucha discusión que explica cómo resolverlos.

Supongo que la próxima actualización importante de "problema" será la migración a openrc una vez que se estabilice (se realizó en ~ Arch a mediados del año pasado con solo unos pocos problemas, principalmente con cambios en la red).

5
Ophidian

He estado usando casi los mismos pasos que usted, excepto:

  • eix-sync en vez de emerge --sync porque me gusta ver los cambios en el árbol de portage. Esto es especialmente bueno para notar paquetes que podría querer instalar que son nuevos en el árbol.

  • layman -S (ocasionalmente) antes de que emerja el principal para sincronizar cualquier cambio en las superposiciones.

  • eclean-dist -d después de la revdep-rebuild para limpiar tarballs obsoletos. Hago esto después de cada emergencia, porque las degradaciones de paquetes no son tan comunes.

  • eix-test-obsolete como último paso para ayudar a mantener mis archivos/etc/portage ordenados y actualizados. Esto también me permite saber cuándo he instalado paquetes que se han eliminado por completo de portage, por lo que necesito obtener el ebuild del repositorio. Un ejemplo reciente, tengo que enmascarar todas las versiones de iproute2> 2.6.22.20070710 debido a que el kernel anterior se ejecutaba en mi Xen VPS, pero fue eliminado recientemente de portage.

eix-sync y eix-test-obsolete están en app-portage/eix.

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

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

Verifique que uno de los encabezados de Linux, glibc, binutils, libtool o gcc tenga una actualización magor (por ejemplo, actualizaciones de gcc de 4.6 a 4.8). Si no es así, vaya al paso 11.

Reconstrucción completa:

  1. rm -rf PKGDIR/* ¡Reemplace PKGDIR con su ruta al paquete dir!
  2. emerge -av linux-headers glibc binutils gcc-config libtool gcc
  3. gcc-config <number of new gcc> Cambiar a nuevo gcc
  4. source /etc/profile
  5. emerge -avb glibc binutils gcc libtool
  6. emerge -avbke system
  7. emerge -avbke world

Si tiene algún problema en los pasos 10 u 11, corríjalo e intente nuevamente

Actualización mundial:

  1. Limpia tu archivo mundial /var/lib/portage/world de paquetes innecesarios y 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

Si tiene algún problema en los pasos 14-18, corríjalo y repita todos los pasos del paso 13

  1. etc-update o dispatch-conf
  2. glsa-check -vp affected Puede tener paquetes afectados en las ranuras después de la actualización
  3. emaint --check all
5
user261123
glsa-check -t all
glsa-check -f all

Eso es lo que deberías correr primero. No es necesario si actualiza todos los paquetes.

Ah, y prefiero cfg-update;)

3
laurentb

Si su objetivo es tener el último absoluto de todos los paquetes, entonces sí, eso parece cubrir todas las bases. Sin embargo, me sorprende que esto haya funcionado para usted durante mucho tiempo, porque me imagino que a menudo lo muerden bloques, pisos rotos, etc. En los últimos dos años he tenido mucho más cuidado con las actualizaciones al por mayor, eligiendo en cambio hacerlo poco a poco después de ver el árbol de actualización. El desarrollo de Gentoo parece haber pasado su apogeo. Tal vez sea por el auge de Ubuntu.

De todos modos, una cosa adicional que puedes probar, solo para ser realmente exigente con todo el proceso, es limpiar tus destiladores. Hay secuencias de comandos por ahí si busca.

3
Adam D'Amico

Esto es lo que hago:

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.

Si no comprende completamente los comentarios, lea esto porque es la autoridad sobre cómo actualizar sus paquetes gentoo.

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

1
Eric Leschinski

Así lo hago en mi VPS:

paso 0 (desde/etc/crontab)

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

paso 1:

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

paso 2:

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

Se ve bien, aunque no sería tan rápido para ejecutar depclean.

A menos que tenga un requisito como un bajo espacio en el disco duro, puede regresar y depclear a intervalos menos regulares. No hay daño tenerlos cerca por un período corto. Si tuvo la mala suerte de notar algunos paquetes rotos después de la actualización, entonces estaría seguro de que no son el resultado de eliminar las dependencias sueltas.

0
Dan Carley

Durante mucho tiempo, siempre utilicé este procedimiento:

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

Yo, para el mío, prefiero actualizar durante la noche. Pero a veces sucede que algo falla y, por lo tanto, debe descargar todos (o algunos) programas nuevamente.

Quizás el modificador --newuse es innecesario, pero a menudo estoy editando mi make.conf, por lo que tiene sentido para mí.

0
hajowieland

Su proceso es correcto, aunque ejecutar todos los comandos probablemente no sea necesario, generalmente solo hago una sincronización y un mundo de actualización. Emerge le dirá generalmente si necesita ejecutar un script para reconstruir el archivo, como durante una actualización importante Python) y también le dirá cuándo combinar los cambios de configuración. Dado que Gentoo en realidad no tiene un Actualice la ruta de una versión a otra. En el momento en que emerge del mundo, tiene la última versión.

0
John Downey