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
Bueno, antes que nada, ¿qué tiene que perder? Si no funciona, aún puede hacer una instalación nueva.
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 CFLAGS
en make.conf
, no veo el problema real allí.
Lo que podría intentar, pero sin experiencia personal, es hacerlo a la repo.conf
manera. Cree un directorio separado, como /usr/gentoo
y 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 --pretend
al 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.conf
para funtoo y hacer un emerge -uND --newrepo @world
.
En el pasado, cuando estaba haciendo un gran cambio de perfil, usé este método.
emerge -uND @world
), maneje el conjunto @preserved -rebuild y depclean . /var/lib/portage/world
a 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/world
y word_sets
sean archivos vacíos después de esta migración.
emerge --depclean
para deshacerse de todos los paquetes que fueron extraídos por@world
/etc/portage/package.use
. (Mueva el archivo (s )a algún lugar si tiene la intención de usarlo más tarde. USE=
enmake.conf
default/linux/amd64/17.0
emerge -uND @world && emerge --depclean
Estarás en la configuración más pequeña posible para Funtoo, el menor riesgo de conflictos. repos.conf
)emerge @boot
Y 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. make.conf
y tal vez empaquete indicadores específicos enpackage.use
emerge -uND @world @admin @desktop && emerge --depclean
:si todo salió bien, ¡ha transferido con éxito Funtoo a Gentoo! 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
.
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 :).