Quando executo sudo apt-get upgrade
minha instalação do Debian Squeeze, recebo o seguinte erro:
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.
Não sei ao certo o que "squeeze3" versus "squeeze5" significa, mas é a única coisa que difere no pacote libxml2.
Quando tento "sudo apt-get install -f", recebo:
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)
Um erro semelhante ocorre com sudo apt-get upgrade -f
.
Meu /etc/apt/sources.list está atualmente:
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
Como faço para corrigir isso? Obrigado!
squeeze3
é o terceiro lançamento do patch para squeeze,squeeze5
é o quinto. Eles fazem parte do número da versão. As versões para a biblioteca e os arquivos de desenvolvimento devem corresponder exatamente. É normal que o APT queira que você executeapt-get install -f
. O que não é normal é que a atualizaçãolibxml2-dev
está falhando. O diretório/usr/include/libxml2
existe? As permissões são razoáveis? Existe espaço em disco suficiente?ls -l
diz que não é possível acessarlibxml2
(mesmo como root) e dá?
marcas no lugar de todas as informações de permissão. Promover para responder? Não tenho certeza de como consertar, mas posso procurar / conversar com meu host.Respostas:
squeeze3
é o terceiro patch de squeeze,squeeze5
é o quinto. Eles fazem parte do número da versão. As versões da biblioteca e os arquivos de desenvolvimento devem corresponder exatamente, portanto, é normal que o APT deseje que você executeapt-get install -f
quando seu sistema tiver versões inconsistentes.O que não é normal é que a atualização
libxml2-dev
está falhando. A mensagem sobre não poder ler/usr/include/libxml2
é incomum. Parece indicar que a instalação foi danificada de alguma forma. Verifique se o diretório ainda existe. Se você o moveu ou removeu em algum momento ... não faça isso e recrie ou mova o diretório para recuperar. Se o diretório existir, mas você vir algo comoentão o seu sistema de arquivos está corrompido, ou talvez a sua RAM. Primeiro, verifique sua RAM : esta é a causa mais comum de corrupção do sistema de arquivos. Escreva o mínimo possível até ter certeza da RAM, pois poderá piorar os danos. Como tirá-lo de lá depende da natureza e extensão do dano.
fonte
Tente limpá-lo e depois reinstale.
Um
-dev
pacote é apenas os componentes necessários para compilar programas vinculados a essa biblioteca, não é necessário para o tempo de execução, portanto é seguro limpar completamente.fonte
apt-get clean
que limparia o cache do pacote e forçaria o re-download do repositório do pacote que você precisava./usr/include/libxml2
estava corrompido. Mesmorm -f /usr/include/libxml2
iria falhar, dizendo algo como não poderia encontrar o arquivo. O meu webhost levou 17 horas para corrigi-lo.