Миграция от Funtoo до хинду в рабочей системе

while true;do echo -n .;sleep 1;done &
sleep 10 # or do something else here
kill $!; trap 'kill $!' SIGTERM
echo done

это будет запускать бесконечный цикл с условием продолжения что echos счетчик каждую секунду, выполняемый в фоновом режиме.

Вместо sleep10 управляйте выполняет любую команду, которую Вы хотите.

Когда та команда закончит выполняться, это уничтожит последнее задание, работающее в фоновом режиме (который является бесконечным циклом с условием продолжения),

источник: https://stackoverflow.com/a/16348366/1069083

Можно использовать различные циклы с условием продолжения вместо этого, например, счетчик как это:

while :;do for s in / - \\ \|; do printf "\r$s";sleep 1;done;done
4
13.01.2014, 17:30
1 ответ

Bueno, antes que nada, ¿qué tiene que perder? Si no funciona, aún puede hacer una instalación nueva.

Copia de seguridad

No hace falta decir que necesita hacer una copia de seguridad de los elementos importantes. Tal vez incluso haga un archivo de /etc, en caso de que quiera mirar hacia atrás.

Personalmente, cada vez que intento algo radical, rsync mi sistema de archivos raíz en un disco separado de antemano. Cada vez que algo sale terriblemente mal, simplemente rsync lo devuelvo; ). Monte la partición raíz en un punto de montaje separado, para evitar la repetición de todas las particiones montadas. Y ejecuta algo como:

rsync -av --delete /mnt/root/ /mnt/backup

Para restaurar:

rsync -av --delete /mnt/backup/ /mnt/root

Solo asegúrese de que el sistema de archivos de respaldo sea del tipo Linux (no FAT o NTFS ), para transferir permisos, enlaces simbólicos y propiedad de archivos correctamente hacia arriba y hacia abajo.


Aunque nunca lo hizo personalmente, puede probar las siguientes opciones como guía. Algunos comentarios anteriores sugieren diferentes perfiles de compilador,pero la mayoría de eso son solo useflags para gcc y CFLAGSen make.conf, no veo el problema real allí.

Opción #1

Lo que podría intentar, pero sin experiencia personal, es hacerlo a la repo.confmanera. Cree un directorio separado, como /usr/gentooy coloque allí el árbol de portage Vanilla Gentoo.

Archivo/etc/portage/repos.conf/gentoo.conf:

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
priority 10

Y debería existir algo similar para Funtoo, y con una menor prioridad . Después de ejecutar emerge --sync, ambos árboles existirán uno al lado del otro. Si existen paquetes de la misma versión, el repositorio con mayor prioridad gana (en teoría ). Puede forzar la selección de paquetes, agregando el sufijo del repositorio deseado como este:

emerge sys-devel/gcc::gentoo

Usando esta configuración, puede moverse al paso de Gentoo -por el paso -. Los perfiles de ambos repositorios estarán disponibles para su selección, por lo que puede probar algunos comandos emerge --pretendal seleccionar los perfiles de Gentoo, jugar con las banderas de uso, etc. Emerge gcc, portage del árbol de Gentoo, etc. Si solo se asegura de que GCC es re -surgido con los mismos useflags (edite make.conf a su gusto )y mantenga los mismos CFLAGS, probablemente ni siquiera necesite vaciar el árbol del sistema.

Tal vez desee leer la Guía de actualización de GCC y /usr/share/portage/config/make.conf.example.

Finalmente, puede eliminar la entrada repo.confpara funtoo y hacer un emerge -uND --newrepo @world.

Opción #2

En el pasado, cuando estaba haciendo un gran cambio de perfil, usé este método.

  1. Asegúrese de que su sistema esté completamente actualizado -a -fecha (emerge -uND @world), maneje el conjunto @preserved -rebuild y depclean .
  2. Mueva las entradas de /var/lib/portage/worlda un conjunto definido por el usuario. Puede ser un conjunto o, si desea estar organizado, categorías de conjuntos. Por ejemplo, creé 3 conjuntos, utilizables en etapas separadas del proceso.

/etc/portage/sets/arranque

sys-boot/grub
sys-kernel/gentoo-sources
[network tools etc]

/etc/portage/sets/admin

app-editors/vim
app-portage/gentoolkit
[...]

/etc/portage/sets/escritorio

 # All the rest

Asegúrese de que /var/lib/portage/worldy word_setssean archivos vacíos después de esta migración.

  1. Ejecute emerge --depcleanpara deshacerse de todos los paquetes que fueron extraídos por@world
  2. Por ahora, limpia /etc/portage/package.use. (Mueva el archivo (s )a algún lugar si tiene la intención de usarlo más tarde.
  3. Comente la línea USE=enmake.conf
  4. Bajar a un perfil lo más simple posible. En gentoo sería algo así como:default/linux/amd64/17.0
  5. emerge -uND @world && emerge --depcleanEstarás en la configuración más pequeña posible para Funtoo, el menor riesgo de conflictos.
  6. Cambie el árbol de portage para usar el de Gentoo. (Probablemente enrepos.conf)
  7. Esto debería brindarle el sistema de perfil de Gentoo más simple emerge -1 sistema -aplicaciones/portage emerge -1 sistema -devel/gcc emerge -y @system
  8. emerge @bootY haga lo que necesite hacer para configurar el kernel, grub, etc. (siga el manual )Esto debería darle un reinicio completo -del sistema Gentoo. Reinicie si desea probar en este punto.
  9. Configure su perfil deseado, vuelva a -habilite useflags en make.confy tal vez empaquete indicadores específicos enpackage.use
  10. emerge -uND @world @admin @desktop && emerge --depclean:si todo salió bien, ¡ha transferido con éxito Funtoo a Gentoo!

Incompatibilidades

Para responder a las restantes preguntas; Durante la reinstalación -de los paquetes, Portage verificará si los archivos en /etc/son ​​los originales o están modificados. Si no se modifican -desde la instalación, portage simplemente los reemplazará. Lo mismo ocurre con los archivos en /etc/init.d. Estos archivos, al final, todos pertenecen a un paquete. Una reconstrucción del paquete debería dar la versión correcta al final.

Los archivos de configuración modificados están protegidos por config -protect . Estos deberán actualizarse utilizando herramientas como etc-update.

Nota

Soy consciente de que esta era una vieja pregunta y probablemente ya no ayude al OP. Sin embargo, el tema me interesa. Sería bueno si alguien que encontró esta respuesta lo intentara :).

2
27.01.2020, 21:02

Теги

Похожие вопросы