web-dev-qa-db-ja.com

Lost / Deleted dpkg(Debianのパッケージマネージャー)。どうすれば元に戻すことができますか?

OS:Ubuntu 12.04

誤ってdpkgを削除しました。現在、パッケージはインストールできません。そのため、パッケージをインストールするdpkgインストーラーが必要です。

8
Raghu G

ディストリビューションのバージョンを補足するパッケージをダウンロードします。 https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7

ファイルを解凍します。

cdをdpkgソースディレクトリのルートに移動します。

./configure

make

Sudo make install

./configureが失敗した場合、いくつかのパッケージをダウンロードする必要があります

2
j0h

削除した内容に応じて、手動でダウンロードした.debファイルから必要な部分を抽出することで状況を救うことができます。もちろん、コツはdpkgを使用せずに.debファイルを解凍する方法を見つけることです-幸いなことにここに解決策があります

コマンドdpkgなしで.debを抽出してインストールする方法


最初に packages.ubuntu.com に移動し、ご使用のOSバージョンとアーキテクチャに適した.debファイルをダウンロードします。

mkdir debroot && cd debroot
wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.18.4ubuntu1_AMD64.deb

通常のdpkg -xの代わりにarを使用してdebファイルを解凍します

ar -x dpkg_1.18.4ubuntu1_AMD64.deb

dpkg_1.18.4ubuntu1_AMD64.debを、ダウンロードした実際のdebの名前に置き換えてください)。これで、次の内容が得られます。

control.tar.gz  data.tar.gz  debian-binary  dpkg_1.18.4ubuntu1_AMD64.deb

パッケージのファイルはdata.tar.gzに配置して、dpkgバイナリファイルを抽出する必要がありますlocally

tar xf data.tar.gz ./usr/bin/dpkg

うまくいった場合は、./usr/bin/dpkgにファイルがあり、/usr/binディレクトリにコピーできます。

Sudo cp ./usr/bin/dpkg /usr/bin/

[/を使用してSudo tar -C ...を基準にしてファイルを直接展開することもできますが、2段階で実行する方が少し安全だと感じます。]


それが機能する場合、一貫性のためにリポジトリから全体を再インストールすることをお勧めします。

Sudo apt-get update
Sudo apt-get install --reinstall dpkg

(新しいシステムでは、apt-getaptに置き換えることができます)。

9
steeldriver