web-dev-qa-db-ja.com

循環依存によってブロックされたapt更新

小規模なユーザーベースが不定期に使用する小さなサイト/プロジェクトのために存続しているVPSインスタンスでDebianを実行しています。サーバーはほとんど放置されていますが、私は時々ログインしてパッケージを最新の状態に保つようにしています。今日、私はかなり長い間サーバーにアクセスしておらず、ログインしてapt-get update && apt-get upgradeを実行していないことに気付きました。

利用可能なアップデートを含むパッケージが多数あったという事実を除けば、アップグレードプロセスが突然停止し、次のメッセージが表示されるまで、すべてが順調に進んでいるように見えました。

Processing triggers for man-db ...
Errors were encountered while processing:
 /var/cache/apt/archives/mime-support_3.58_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

apt-get upgradeをもう一度実行すると、更新されるパッケージの大部分が「mime-support」によって抑制されていることがわかりました。

Preparing to replace mime-support 3.48-1 (using .../mime-support_3.58_all.deb) ...
dpkg: error processing /var/cache/apt/archives/mime-support_3.58_all.deb (--unpack):
 triggers ci file contains unknown directive `interest-noawait'
configured to not write apport reports
                                  Errors were encountered while processing:
 /var/cache/apt/archives/mime-support_3.58_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

少しグーグルすると、mime-supportアップデートがdpkg機能「interest-noawait」に依存していることが明らかになりました。これは、mime-supportによって抑制されているdpkgアップデートに含まれています...

Mime-supportに依存しているため、dpkgを最新バージョンにアップグレードできないようですが、dpkgの新しいバージョンに依存しているため、アップグレードできませんか?

このエラーを回避するために、dpkgの最新バージョンを手動でインストールすることは可能ですか? mime-supportを削除しようとしましたが、他の多くの依存関係のために削除できませんでした。

3
danielcraigie

私も同様の問題を抱えていました。 elsewhere 解決策は、古いdpkg実行可能ファイルを新しいバージョンに置き換えることであることがわかりました。それは私のために働いた。

まず、dpkgの現在のバージョンをダウンロードする必要があります。

i386バージョン

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.18.4ubuntu1.1_i386.deb

または

AMD64バージョン

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.18.4ubuntu1.1_AMD64.deb

その後、新しいdpkgバイナリを抽出し、古いバイナリの代わりに配置します。

ar x dpkg_1.18.4ubuntu1.1_AMD64.deb tar -xfvz data.tar.gz
Sudo cp ./usr/bin/dpkg/usr/bin /
Sudo apt-get update
Sudo apt-get install --reinstall dpkg

それがトリックでした。

1
doomsday290