Utracone / Usunięte dpkg (menedżer pakietów dla Debiana). Jak mogę to odzyskać?

8

System operacyjny: Ubuntu 12.04

Przypadkowo usunięty dpkg. Teraz nie można zainstalować pakietów. Potrzebuje więc dpkginstalatora, który instaluje pakiety.

Raghu G.
źródło

Odpowiedzi:

2

Pobierz pakiet uzupełniający do wersji swojej dystrybucji. https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7

Rozpakuj plik.

cd do katalogu głównego katalogu źródłowego dpkg.

./configure

make

sudo make install

W razie ./configureniepowodzenia może być konieczne pobranie niektórych pakietów

j0h
źródło
kiedy piszę „./configure”, coś mówi, a na końcu: „konfiguruj: błąd: nie znaleziono biblioteki przekleństw” ...
Mohammad Mahdi Naderi
To tak naprawdę nic nie wyjaśnia i obecnie nie działa. ./configure wymaga wielu rzeczy i nie jest jasne, czego dokładnie chce.
G_V,
1
@G_V Jeśli masz nowe pytanie, jestem pewien, że ktoś chętnie udzieli obszernego wyjaśnienia. Zamieść swoje błędy konfiguracji w swoim nowym pytaniu. Wygląda na to, że musisz zainstalować kilka pakietów, aby dpkg działał.
j0h
@ j0h Skończyłem instalowanie naprawy mojej partycji systemu operacyjnego, mniej kłopotów. Naprawdę nie rozumiałem, do czego służy ./configure, ani co naprawdę robi, ponieważ nigdy wcześniej nie instalowałem niczego przez make. Ten link pomógł zrozumieć, co się właściwie dzieje.
G_V
9

W zależności, co dokładnie usunięte, to może być w stanie ratować sytuację poprzez wydobycie niezbędnych części z pobranego ręcznie .debpliku. Sztuką jest oczywiście znalezienie sposobu na rozpakowanie .debpliku bez działania dpkg- na szczęście jest tutaj rozwiązanie

Jak wyodrębnić i zainstalować .deb bez polecenia dpkg?


Najpierw przejdź do packages.ubuntu.com i pobierz odpowiedni .debplik dla swojej wersji systemu operacyjnego i architektury, np

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

Teraz rozpakuj plik deb, używając arzamiast zwykłegodpkg -x

ar -x dpkg_1.18.4ubuntu1_amd64.deb

(zamień na dpkg_1.18.4ubuntu1_amd64.debnazwę faktycznie pobranego deba). Powinieneś teraz mieć następującą zawartość

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

Pliki pakietu powinny znajdować się w data.tar.gzso, aby wyodrębnić dpkgplik binarny lokalnie

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

Jeśli to zadziałało, powinieneś mieć plik, ./usr/bin/dpkg który możesz skopiować do swojego /usr/binkatalogu

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

[Pamiętaj, że możesz rozpakować plik bezpośrednio względem /używania, sudo tar -C ...ale wykonanie go w dwóch krokach jest po prostu trochę bezpieczniejsze.]


Jeśli to zadziała, zalecam ponowną instalację całej rzeczy z repozytorium dla zachowania spójności, tj

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

(w nowszych systemach możesz zastąpić apt-getprzez apt).

steeldriver
źródło