dpkg 修復を強制する

dpkg 修復を強制する

私はひどいミスをして、/usr/libDebianのディレクトリから2つのフォルダを削除してしまいました。削除しpython2.7/pkgconfig/

修正しようとしたがうまくいかなかったこと:

  • sudo dpkg -i python2* ->「プラットフォームに依存しないライブラリが見つかりませんでした」-->「/usr/lib/pyton2.7/py_compile.py そのようなファイルはありません」

  • 削除しても(python;将来の再インストール用) sudo dpkg -i python2.7-minimal-->削除できないpython2.7-minimal は python2.7-minimal (>=... .deb) に依存し、python2.7 は python2.7-minimal (>=..._rc2.deb) に依存します。

したがって、パッケージが dpkg によって「構成」されていない限り、再インストールしたりパッケージを修復したりすることはできませんapt-get install pythonが、dpkg の異なるバージョンに依存しているため、クリーンな再インストールのためにパッケージを削除することもできません。この問題を解決する方法がわかりません。

では、上記の状況を解決するために、dpkg または apt を介してすべての依存関係を持つパッケージを完全に削除するにはどうすればよいでしょうか?

答え1

が壊れた場合は、とローカルにキャッシュされたパッケージのフルパスをapt使用して手動で正しく設定できる場合があります。方法は次のとおりです。dpkg

  1. cdaptパッケージを保管する場所、つまり/var/cache/apt/アーカイブ/
  2. dpkgそれから (必要に応じて)インストール、削除、パージなどのスイッチを押して、ファイル名現在のディレクトリにあるパッケージのバージョン。'フーバー'最近連続してインストールされた場合は、入力してdpkg -i foobar<TAB>'' キーを押すと、残りの部分は自動補完で入力されるbashか、使用可能なバージョンが表示されます。
  3. dpkg必要だと言ったら「フィズバン」、(または取り除く必要がある「フィズバン」)、ステップ2を実行します。「フィズバン」. 次にステップ2を試してください'フーバー'また。
  4. システムが目的の状態になるまで、#2と#3を繰り返します。

これは、必要なパッケージアーカイブがまだローカルにキャッシュされていることを前提としています。パッケージをオンラインで探す必要がある場合もあります。その場合、必要なパッケージのバージョン番号は多少異なる可能性があります。不確か-- このような場合、/var/log/dpkg.log答えは、パッケージ名を入力するか、それを介して入力すると、これまで動作していたバージョンが表示されgrepます。seddpkg

関連情報