Parece que mi aptitude
está roto de alguna manera:
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
usando apt-get
.
Desafortunadamente parece apt-get
que no tiene una opción de reinstalación.
¿Cómo podría volver aptitude
a trabajar?
Es posible que haya encontrado la causa raíz del segfault de aptitude. Así es como puedo reproducirlo:
- Inicio de sesión remoto 'ssh' en la máquina Debian a través del terminal rxvt de Cygwin (desde una edición alemana de Windows 7 de 64 bits).
- Amplíe la ventana rxvt para que se extienda a través de dos monitores (sí, tengo dos monitores)
- Ejecutar
aptitude update
. Nota: cuando cambio el tamaño del terminal rxvt a normal, ¡no tengo estos fallos de segmentación!
debian
aptitude
debian-lenny
Vokuhila-Oliba
fuente
fuente
-A5
estás agarrando?--
estás molestando?man getopt
, mira debajoPARSING
-A5
muestra la línea coincidente más las siguientes 5 líneas.--
detiene el análisis de las opciones, por lo tanto, interpreta 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.Puede reinstalar un paquete con
sudo apt-get install --reinstall packagename
. Esto elimina completamente el paquete (pero no los paquetes que dependen de él), luego vuelve a instalar el paquete.Esto puede ser conveniente cuando el paquete tiene muchas dependencias inversas.
fuente
¡A veces también necesitas restaurar los archivos de configuración! no solo reinstalar.
sudo apt-get install --reinstall xxxx
Vuelva a instalar la aplicación, mantiene los archivos de configuración.
Esto podría ser útil, pero a veces necesitas comenzar de nuevo, así que lo que uso es esto:
entonces
fuente
UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]
.Debe estar seguro de eliminar aptitude y reinstalar, ya que eso no afectará a las otras utilidades de apt. Entonces:
apt-get remove aptitude
seguido deapt-get install aptitude
, o si eso todavía falla, intenteapt-get purge aptitude
seguido deapt-get install aptitude
.Antes de hacer cualquiera de los anteriores, recomiendo un sistema de archivos completo y una comprobación de bloqueo incorrecto en caso de que haya un problema que haya causado el problema (dependiendo del problema, si existe, una 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 dejar que continúe (debe hacer una pausa para pedir permiso si se cambia algo adicional como resultado de la eliminación de ese paquete), para verificar dos veces mi pensamiento de que esto es seguro.
fuente
apt-get remove
seguido porapt-get install
hizo el truco!a full filesystem check
o similares. ¿Podría por favor darme una pequeña pista de cómo hacerlo?fsck -f <block_device>
tales comofsck /dev/sda1
. El sistema de archivos deberá desmontarse o montarse solo lectura en ese momento, por lo que es probable que este sea su sistema de archivos raíz, debe reiniciar en modo de usuario único o iniciar desde otra cosa como un CD en vivo.tune2fs
para marcar el sistema de archivos como si se hubiera montado más veces que el límite establecido, eso debería forzar una comprobación el próximo inicio. Suponiendo que el sistema de archivos es ext2 / 3/4:tune2fs -C 99 <device>
o en caso de que tenga desactivada la verificación basada en el recuento de montaje, actívela al mismo tiempo con algo asítune2fs -c 17 -C 99 <device>
.Es como si nunca antes hubieras instalado el paquete. Estoy haciendo esto a menudo con movimiento y esas cosas.
fuente