Pregunta ¿Cómo reinstalar un paquete usando apt-get?


Parece que mi aptitude de alguna manera está roto

sudo aptitude update
0% [Working]Segmentation fault

dmesg
[223282.616599] aptitude[30972]: segfault at 67707f ip 7f954dcfae5d sp 7ffff5a5f950 error 4 in libapt-pkg-libc6.7-6.so.4.6.0[7f954dca5000+bd000]

entonces me gustaría reinstalar aptitude mediante el uso apt-get

Desafortunadamente parece apt-get no tiene una opción de reinstalación.

¿Alguna idea de cómo podría tener la capacidad de volver a trabajar?

Editar : Es posible que encuentre la causa raíz de Segfault de aptitude. Aquí es cómo puedo reproducirlo:

  1. ssh inicio de sesión remoto en la máquina Debian a través de la terminal rxvt de cygwin (de una edición de Windows-7 de 64 bits en alemán).
  2. ampliar la ventana rxvt para que se extienda a través de dos monitores (sí, tengo dos monitores)
  3. correr aptitude update. Nota: cuando cambio el tamaño del terminal rxvt a normal, ¡entonces no tengo estos segfaults!

167


origen




Respuestas:


$ man apt-get | grep reinsta -A2
       --reinstall
           Re-Install packages that are already installed and at the newest
           version. Configuration Item: APT::Get::ReInstall.

Entonces, usarlo para reinstalar aptitude utilizar:

sudo apt-get install --reinstall aptitude

283



que es eso -A5 Estás agotando? - Vokuhila-Oliba
hombre grep | grep - "-A" - grawity
Que es eso -- Estás agotando? - Desty
man getopt, Mira por debajo PARSING - Tino
-A5 muestra la línea combinada más las 5 líneas siguientes. -- detiene el análisis de las opciones, interpretando todo lo que viene después como argumentos posicionales, evitando tener que escapar del guión en la expresión -A que de otro modo se interpretaría como una opción para grep. - jjmontes


Puede reinstalar un paquete con sudo apt-get install --reinstall packagename. Esto elimina por completo el paquete (pero no los paquetes que dependen de él), luego reinstala el paquete.

Esto puede ser conveniente cuando el paquete tiene muchas dependencias inversas.


98



Gracias por ser la única respuesta correcta, completa y no sarcástica. - Cerin
@Cerin: No llamaría excesivamente sarcásticas a las otras respuestas: incluso la página "leer la página del hombre" en realidad dio la respuesta y también cómo encontrarla. - David Spillett
@DavidSpillett, estoy totalmente en desacuerdo. Las páginas man generalmente están mal escritas y son muy hostiles para los novatos. Por ejemplo, el párrafo en la opción "--reinstall" no menciona que debe usarlo con el argumento "instalar". Un novato podría preguntarse "¿por qué tengo que decirle que instale Y vuelva a instalar?" Una respuesta que le dice a alguien a RTFM es el peor tipo de respuesta y me duele verla con la mayor cantidad de votos, especialmente cuando una respuesta completa y realmente útil está cerca de la parte inferior. - Cerin


Debería tener la seguridad de eliminar aptitude y reinstalar, ya que eso no afectará a las otras utilidades apt. Asi que: apt-get remove aptitude seguido por apt-get install aptitude, o si eso aún falla, prueba apt-get purge aptitude seguido por apt-get install aptitude.

Antes de hacer cualquiera de las anteriores, recomiendo un sistema de archivos completo y una comprobación de bloque defectuoso en caso de que haya un problema que haya causado el problema (dependiendo del problema, si hay alguno, la actividad adicional podría empeorar las cosas). Además, asegúrese de revisar lo que se eliminará en el paso de eliminar / purgar antes de permitir que continúe (debe hacer una pausa para pedir permiso si se cambia algo extra como resultado de eliminar ese paquete), para verificar mi idea de que esto es seguro.


12



¡Muchas gracias! apt-get remove seguido por apt-get install ¡Hizo el truco! - Vokuhila-Oliba
Hace mucho tiempo que hice cosas como a full filesystem check o similar. ¿Podría darme una breve pista de cómo hacer eso? - Vokuhila-Oliba
fsck -f <block_device> como fsck /dev/sda1. El sistema de archivos deberá desmontarse o montarse de solo lectura en el momento, ya que es probable que sea su sistema de archivos raíz, debe reiniciarse en modo de usuario único o arrancar desde otra cosa, como un CD en vivo. - David Spillett
Puedes usar tune2fs para marcar que el sistema de archivos ha sido montado más veces que su límite establecido, eso debería obligar a verificar el siguiente inicio. Suponiendo que el sistema de archivos es ext2 / 3/4: tune2fs -C 99 <device>, o en caso de que la verificación basada en el conteo de montaje esté desactivada, enciéndala al mismo tiempo con algo como tune2fs -c 17 -C 99 <device>. - David Spillett
touch / forcefsck; reiniciar - user23307


¡A veces también necesitas restaurar archivos de configuración! no solo reinstalar.

sudo apt-get install --reinstall xxxx

Reinstale la aplicación, conserva los archivos de configuración.

Esto podría ser útil, pero a veces es necesario comenzar de nuevo, así que lo que uso es esto:

sudo dpkg -r xxxx //to remove that xxxx package
sudo dpkg -P xxxx //to purge all related files

entonces

sudo apt-get install xxxx

12



Y si solo necesita restaurar archivos de configuración, en algunos casos (si son administrados por ucf) debe usar UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]. - Skippy le Grand Gourou