apt-getアップグレード後にDebian dpkgが破損する

apt-getアップグレード後にDebian dpkgが破損する

私は長い間Debian Wheezyを使ってきました。私は今日1つ実行しましたが、dpkg upgradeなんだか真剣に問題が発生しました。アップグレードが中断apt-getされ、現在実行されていませんdpkg

# dpkg
dpkg: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory

欠落しているファイルを含む.debファイルをダウンロードできますが、作業ツールなしではインストールできません。このCatch-22からどのように抜け出すことができますか?

答え1

パフォーマンスを向上させるには、標準ディレクトリのライブラリファイルをキャッシュに登録する必要があります。アップグレードが間違った時間に中断されると、ライブラリファイルはファイルシステムにありますが、キャッシュには存在しない可能性があります。走るldconfigキャッシュをルートに更新します。

動的ライブラリの問題を解決するのに役立つように、静的にリンクされたユーティリティのコレクションを使用すると便利です。busybox-staticウエストバンドzsh - 静的

答え2

.deb次のコマンドを組み合わせてファイルの内容を抽出できます。artar

mkdir /tmp/selinux
cd /tmp/selinux
ar p /path/to/libselinux.deb data.tar.gz | tar xz

パッケージのコンテンツは、現在ディレクトリにルートがある階層で解凍され、必要なファイルを適切な場所に移動できます。 libselinuxの場合、これは単なる可能性があります/lib/x86_64-linux-gnu/libselinux.so.1(ディレクトリ名はアーキテクチャによって異なります)。

この機能を再利用した後は、dpkg -iパッケージ全体を再インストールする必要があります。

関連情報