Lost / Deleted dpkg (менеджер пакетов для Debian). Как мне вернуть его обратно?

8

ОС: Ubuntu 12.04

Случайно удален dpkg. Теперь пакеты не могут быть установлены. Итак, нужен dpkgустановщик, который устанавливает пакеты.

Raghu G
источник

Ответы:

2

Загрузите пакет, дополняющий версию вашего дистрибутива. https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7

Распакуйте файл.

cd в корень исходного каталога dpkg.

./configure

make

sudo make install

Возможно, вам придется скачать некоторые пакеты, если ./configureне удается

j0h
источник
когда я набираю «./configure», он что-то говорит и в конце говорит: «configure: error: библиотека проклятий не найдена» ...
Мохаммад Махди Надери
Это на самом деле ничего не объясняет и не работает в настоящее время. ./configure требует кучу вещей, и неясно, чего именно он хочет.
G_V
1
@G_V Если у вас есть новый вопрос, я уверен, что кто-то хотел бы дать длинное объяснение. Опубликуйте ошибки конфигурации в новом вопросе. Похоже, вам нужно установить несколько пакетов, чтобы заставить dpkg работать.
j0h
@ j0h В итоге я сделал ремонтную установку своего раздела ОС, меньше хлопот. Я действительно не понимал, для чего ./configure был или что действительно делал make, так как я никогда ничего раньше не устанавливал через make. Эта ссылка помогла понять, что на самом деле происходит.
G_V
9

В зависимости от того, что именно вы удалили, вы можете спасти ситуацию, извлекая необходимые части из загруженного вручную .debфайла. Хитрость, конечно, в том, чтобы найти способ распаковать .debфайл без работы dpkg- к счастью, здесь есть решение

Как распаковать и установить .deb без команды dpkg?


Сначала перейдите на packages.ubuntu.com и загрузите соответствующий .debфайл для вашей версии ОС и архитектуры, например:

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

Теперь распакуйте файл deb, используя arвместо обычногоdpkg -x

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двоичный файл локально

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

Если это сработало, у вас должен быть файл, ./usr/bin/dpkg который вы можете скопировать в свой /usr/binкаталог

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

[Обратите внимание, что вы можете распаковать файл напрямую по сравнению с /использованием, sudo tar -C ...но сделать это в два шага просто немного безопаснее.]


Если это работает, я бы порекомендовал переустановить все это из репозитория для согласованности, т.е.

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

(на более новых системах вы можете заменить apt-getна apt).

steeldriver
источник