aptを使用してDebianで壊れたlibxml2-devの依存関係を修正する方法は?

aptを使用してDebianで壊れたlibxml2-devの依存関係を修正する方法は?

Debian Squeezeインストールでこれを実行すると、sudo apt-get upgrade次のエラーが発生します。

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.

「squeeze3」と「squeeze5」が何を意味するのかよくわかりませんが、これはlibxml2パッケージの唯一の違いです。

"sudo apt-get install -f"を試すと、次のような結果が表示されます。

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)

同様のエラーが発生する可能性がありますsudo apt-get upgrade -f

私の/etc/apt/sources.listは現在次のとおりです。

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

この問題をどのように解決できますか?ありがとうございます!

答え1

squeeze3スクイーズの3番目のパッチバージョンであり、squeeze55番目のパッチバージョンです。これはバージョン番号の一部です。ライブラリと開発ファイルのバージョンは正確に一致する必要があるため、apt-get install -fAPTではシステムバージョンが一致しない場合に実行されると予想するのが一般的です。

異常なのは、アップグレードがlibxml2-dev失敗することです。読み取れないというメッセージ/usr/include/libxml2は一般的ではありません。これは、インストールが何らかの方法で破損していることを示しているようです。ディレクトリがまだ存在することを確認してください。ある時点で移動または削除した場合は…ディレクトリを再作成または移動して復元してください。ディレクトリが存在するが、次の内容が表示される場合

$ ls -ld /usr/include/libxml2
?????????? ??? ???????? ???????? 4096 ??? ?? ???? /usr/include/libxml2

これにより、ファイルシステムまたはRAMが破損する可能性があります。まず、記憶力を確認してください:これはファイルシステムの破損の最も一般的な原因です。 RAMの状態を確認するまで、できるだけ少なく書き込んでください。これにより損傷が激しくなる可能性があります。そこから取り除く方法は、損傷の性質と程度によって異なります。

答え2

クリアして再インストールしてみてください。

sudo apt-get purge -f libxml2-dev
sudo apt-get clean
sudo apt-get update
sudo apt-get install libxml2 libxml2-dev

パッケージは-devライブラリに関連付けられたプログラムをコンパイルするために必要なコンポーネントであり、ランタイムには必要ないため、完全に消去しても安全です。

関連情報