Hilang / Dihapus dpkg (manajer paket untuk Debian). Bagaimana saya mendapatkannya kembali?

8

OS: Ubuntu 12.04

Tidak sengaja terhapus dpkg. Sekarang, paket tidak dapat diinstal. Jadi, perlu dpkgpenginstal yang menginstal paket.

Raghu G
sumber

Jawaban:

2

Unduh paket pelengkap untuk versi distro Anda. https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7

Dekompres file.

cd ke akar direktori sumber dpkg.

./configure

make

sudo make install

Anda mungkin perlu mengunduh beberapa paket jika ./configuregagal

j0h
sumber
ketika saya mengetik "./configure" ia mengatakan sesuatu dan pada akhirnya: "configure: error: tidak ada perpustakaan kutukan yang ditemukan" ...
Mohammad Mahdi Naderi
Ini sebenarnya tidak menjelaskan apa-apa dan saat ini tidak berfungsi. ./configure membutuhkan banyak hal dan tidak jelas apa sebenarnya yang diinginkannya.
G_V
1
@ G_V Jika Anda memiliki pertanyaan baru, saya yakin seseorang akan senang memberikan penjelasan yang panjang. Posting kesalahan konfigurasi Anda ke pertanyaan baru Anda. Sepertinya Anda perlu menginstal beberapa paket agar dpkg berfungsi.
j0h
@ j0h Saya akhirnya melakukan perbaikan instalasi partisi OS saya, lebih mudah. Saya tidak benar-benar mengerti untuk apa ./configure untuk atau apa yang benar-benar dilakukan karena saya belum pernah menginstal apapun melalui make sebelumnya. Tautan ini membantu memahami apa yang sebenarnya terjadi.
G_V
9

Tergantung persis apa yang Anda hapus, Anda mungkin dapat menyelamatkan situasi dengan mengekstraksi bagian-bagian yang diperlukan dari .debfile yang diunduh secara manual . Caranya, tentu saja, adalah menemukan cara untuk membongkar .debfile tanpa bekerja dpkg- untungnya ada solusi di sini

Bagaimana cara mengekstrak dan menginstal .deb tanpa perintah dpkg?


Pertama, masuk ke packages.ubuntu.com dan unduh .debfile yang sesuai untuk versi OS dan arsitektur Anda mis

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

Sekarang membongkar menggunakan file deb ardi tempat biasadpkg -x

ar -x dpkg_1.18.4ubuntu1_amd64.deb

(ganti dpkg_1.18.4ubuntu1_amd64.debdengan nama deb aktual yang Anda unduh). Anda sekarang harus memiliki konten berikut

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

File-file paket harus ditempatkan di data.tar.gzsehingga untuk mengekstrak dpkgfile biner secara lokal

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

Jika itu berhasil, Anda harus memiliki file ./usr/bin/dpkg tempat Anda dapat menyalin ke /usr/bindirektori Anda

sudo cp ./usr/bin/dpkg /usr/bin/

[Perhatikan bahwa Anda dapat menghapus file secara langsung dibandingkan dengan /menggunakan sudo tar -C ...tetapi melakukannya dalam dua langkah terasa lebih aman.]


Jika itu berhasil, saya akan merekomendasikan menginstal ulang semuanya dari repositori untuk konsistensi yaitu

sudo apt-get update
sudo apt-get install --reinstall dpkg

(pada sistem yang lebih baru, Anda dapat menggantinya apt-getdengan apt).

Steeldriver
sumber