Tengo Kali Linux instalado recientemente, pero debido a su inflexible selección de espejos, todos los paquetes deb se descargan desde un espejo en el que no confío. ¿Es posible decirle a apt/dselect que vuelva a descargar y reinstalar todos los paquetes, suponiendo que fuentes.list se haya actualizado para usar un nuevo espejo?
Respuesta1
Como Alex señaló:
sudo apt-get clean
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f 1)
El primero se asegura de que el caché de apt esté vacío. De esa forma, apt-get necesitará descargar los paquetes de los repositorios. El segundo, primero necesita una lista de todos los paquetes instalados, que es lo que $(...)
hace la parte, y luego usa apt-get para reinstalarlos. Hay otra forma con aptitud:
sudo aptitude --reinstall install '~i'
La ~i
búsqueda de "paquetes instalados".
Para ambos métodos terminarás sin ningún paquete instalado automáticamente, por lo que debes usarlo apt-mark showauto > packages
antes de hacer esto y sudo apt-mark auto $(cat packages)
restablecer la lista.
Respuesta2
Las respuestas aquí me ayudaron a resolver el problema; esta solución probablemente no sea la más eficiente, pero hace el trabajo.
#!/bin/bash
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
apt-get install --reinstall $package;
done
Respuesta3
Utilicé este guión y de vez en cuando me pidieron que diera una S (sí). Luego el guión continuó. Pero debido a que lleva bastante tiempo, el tiempo para completarlo es mucho más largo. Cambié el script insertando --yes force-yes
Recomendar forzando la aceptación automática de configuración anterior/def también
#!/bin/bash
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --reinstall $package
done