Ответы:
Загрузите пакет, дополняющий версию вашего дистрибутива. https://launchpad.net/ubuntu/+source/dpkg/1.16.1.2ubuntu7
Распакуйте файл.
cd
в корень исходного каталога dpkg.
./configure
make
sudo make install
Возможно, вам придется скачать некоторые пакеты, если ./configure
не удается
В зависимости от того, что именно вы удалили, вы можете спасти ситуацию, извлекая необходимые части из загруженного вручную .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
).