Cuando ejecuto sudo apt-get upgrade
mi instalación de Debian Squeeze, aparece el siguiente error:
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
libxml2-dev : Depends: libxml2 (= 2.7.8.dfsg-2+squeeze3) but 2.7.8.dfsg-2+squeeze5 is installed
E: Unmet dependencies. Try using -f.
No estoy seguro de lo que significa "squeeze3" versus "squeeze5", pero es lo único que difiere en el paquete libxml2.
Cuando intento "sudo apt-get install -f", obtengo:
The following extra packages will be installed:
libxml2-dev
The following packages will be upgraded:
libxml2-dev
1 upgraded, 0 newly installed, 0 to remove and 8 not upgraded.
108 not fully installed or removed.
Need to get 0 B/830 kB of archives.
After this operation, 69.6 kB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 96842 files and directories currently installed.)
Preparing to replace libxml2-dev 2.7.8.dfsg-2+squeeze3 (using .../libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb) ...
Unpacking replacement libxml2-dev ...
dpkg: error processing /var/cache/apt/archives/libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb (--unpack):
unable to install new version of `./usr/include/libxml2': No such file or directory
configured to not write apport reports
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/libxml2-dev_2.7.8.dfsg-2+squeeze5_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Un error similar ocurre con sudo apt-get upgrade -f
.
Mi /etc/apt/sources.list es actualmente:
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
¿Cómo hago para arreglar esto? ¡Gracias!
squeeze3
es el tercer lanzamiento de parche para squeeze,squeeze5
es el quinto. Son parte del número de versión. Las versiones para la biblioteca y los archivos de desarrollo deben coincidir exactamente. Es normal que APT quiera que corrasapt-get install -f
. Lo que no es normal es que la actualización delibxml2-dev
esté fallando. ¿Existe el directorio/usr/include/libxml2
? ¿Son razonables los permisos? ¿Hay suficiente espacio en disco?ls -l
dice que no puede accederlibxml2
(incluso como root) y da?
marcas en lugar de toda la información del permiso. ¿Promover para responder? No estoy seguro de cómo solucionarlo, pero puedo consultar / hablar con mi anfitrión.Respuestas:
squeeze3
es el tercer lanzamiento de parche para squeeze,squeeze5
es el quinto. Son parte del número de versión. Las versiones para la biblioteca y los archivos de desarrollo deben coincidir exactamente, por lo que es normal que APT quiera que se ejecuteapt-get install -f
cuando su sistema tenga versiones inconsistentes.Lo que no es normal es que la actualización de
libxml2-dev
esté fallando. El mensaje sobre no poder leer/usr/include/libxml2
es inusual. Parece indicar que la instalación se ha dañado de alguna manera. Compruebe si el directorio aún existe. Si lo movió o eliminó en algún momento ... no lo haga, y vuelva a crear o retroceda el directorio para recuperarlo. Si el directorio existe pero ves algo comoentonces su sistema de archivos está dañado, o tal vez su RAM. Primero, verifique su RAM : esta es la causa más común de corrupción del sistema de archivos. Escriba lo menos posible hasta que esté seguro acerca de la RAM, ya que puede empeorar el daño. Cómo tomarlo desde allí depende de la naturaleza y el alcance del daño.
fuente
Intenta purgarlo y luego vuelve a instalarlo.
Un
-dev
paquete son solo los componentes necesarios para compilar programas vinculados a esa biblioteca, no es necesario para el tiempo de ejecución, por lo que es seguro purgarlo por completo.fuente
apt-get clean
qué purgaría el caché del paquete y forzaría la descarga desde el repositorio del paquete que necesitaba./usr/include/libxml2
estaba dañado. Inclusorm -f /usr/include/libxml2
fallaría, diciendo algo así no podría encontrar el archivo. Mi webhost tardó 17 horas en solucionarlo.