Eliminé por error un proceso dpkg ejecutándose en segundo plano y me gustaría reinstalar todos los paquetes para asegurarme de que todo esté bien.
Primero, intenté obtener una lista de todos los paquetes y reinstalarlos
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log
apt-get install --reinstall $(cat list.log)
Pero hay mensajes como:
E: Couldn't configure pre-depend debconf:i386 for console-setup:i386, probably a dependency cycle.
Lo intenté apt-get -f install
, sin éxito.
Como último recurso, reinstalé todos los programas que fallaron las sumas de verificación:
dpkg -l | grep ^ii | awk '{ print $2 }' | xargs debsums -s -a
¿Qué debo hacer para reinstalar todo?
Editar: Problema resuelto. El problema era otra cosa (ver los comentarios). Sin embargo, entiendo que es algo que se debe evitar con Debian.
debian
package-management
apt
alex_reader
fuente
fuente
Respuestas:
Prueba esto, recordando que no lo probé:
Fuentes:
man apt-get
fuente
dpkg --get-selections
lista de comandos también desinstala paquetes.Por si acaso, intente reinstalar cada paquete :
Es posible que también desee agregar la respuesta sí a todas las preguntas.
fuente
dpkg --get-selections > list.log
primero.list.log
está tomado de la pregunta.En uno de los recursos citados por Lucas Malor encontré un script llamado populator que parece estar cerca de la solución. Si configura la variable de selección de paquetes en la lista de todos sus paquetes
PKGLIST=$(dpkg --get-selections | grep -v deinstall| cut -f1)
luego puede ejecutar el script y reinstalar todos los paquetes, pero el sistema probablemente tendrá algunos problemas. Sería mejor probarlo primero en una máquina virtual.
Aquí hay una variante del script del enlace de arriba:
Si se muestra el error de que no se pueden reinstalar paquetes específicos, ejecute este comando para volver a intentarlo:
fuente
Intente esto, ya que tomará su salida y la convertirá en una línea gigante con espacios que separan los nombres de los archivos.
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log awk '$1=$1' ORS=' ' list.log > newlist.log apt-get install --reinstall $(cat newlist.log)
El único cambio en su publicación original es agregar la segunda declaración awk, que probablemente podría hacerse en línea con la primera para crear el archivo que desea.
Este cambio obligará a apt-get a volver a descargar correctamente los paquetes y las dependencias faltantes que no se instalaron la primera vez y volver a instalarlos en orden.
Si lo hacemos en línea, creo que se vería así:
dpkg --get-selections | grep -v deinstall | awk '{print $1}' | awk '$1=$1' ORS=' ' > list.log
Y luego asegúrese de que realmente el sistema tenga los paquetes correctos (o más recientes), limpie el caché apto, actualícelo y luego vuelva a descargar todos los archivos (puede omitir los primeros dos pasos si solo quiere lo que tiene en el caché reinstalado):
apt-get clean && apt-get update && apt-get install --reinstall $(cat list.log)
Tenía más de 2k paquetes instalados en un sistema que actualicé que tenía un bloqueo. Usando dpkg --configure -a terminó la instalación (estaba en la fase final). Luego ejecuté esto para que todo se reinstale correctamente.
O como se indica en /superuser/298912/reinstall-debian-while-keeping-installed-packages-and-data :
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f1)
Solo asegúrese de ejecutar primero un "init 2" antes de volver a instalar, ya que algunos de los componentes de X o su administrador de ventanas favorito pueden no gustarle la reinstalación.
fuente
$(cat file)
tokens sin comillas en cualquier espacio en blanco y dan exactamente el mismo resultado si el archivo está delimitado por líneas nuevas o espacios.--reinstall
podría ayudar, pero ya se le dio dos veces antes de esto.Al usar Aptitude, hay una manera fácil y rápida de hacerlo:
sudo aptitude reinstall '~i'
que reinstalará todos los paquetes instalados actualmente.
fuente
Cuando se usa RPM, en caso de que se produzca una corrupción en la base de datos del paquete, existe una opción para reconstruir esta base de datos, evitando así que tenga que realizar básicamente una reinstalación. Como un usuario señaló aquí, esto se hace en Debian
dpkg --configure -a
.fuente
dpkg --configure -a
es configurar todos los paquetes desempaquetados y no configurados. Vea las páginas de manual dedpkg
ydpkg-reconfigure
también debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html