Вопрос или проблема
ОС: Ubuntu 12.04
Случайно удалил dpkg
. Теперь пакеты не могут быть установлены. Поэтому нужен установщик dpkg
, который устанавливает пакеты.
В зависимости от того, что именно вы удалили, вы можете спасти ситуацию, извлекая необходимые части из вручную загруженного файла .deb
. Трюк, конечно, заключается в том, чтобы найти способ распаковать файл .deb
без рабочего dpkg
– к счастью, здесь есть решение
Как извлечь и установить .deb без команды dpkg?
Сначала перейдите на packages.ubuntu.com и скачайте соответствующий файл .deb
для вашей версии ОС и архитектуры, например
mkdir debroot && cd debroot
wget https://mirrors.edge.kernel.org/ubuntu/ubuntu/pool/main/d/dpkg/dpkg_1.22.6ubuntu6_amd64.deb
Теперь распакуйте deb файл, используя ar
вместо обычного dpkg -x
ar -x dpkg_1.22.6ubuntu6_amd64.deb
(замените dpkg_1.22.6ubuntu6_amd64.deb
на имя фактического deb файла, который вы скачали). Теперь у вас должно быть следующее содержимое
control.tar.gz data.tar.gz debian-binary dpkg_1.22.6ubuntu6_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
).
Скачайте пакет dpkg для вашего релиза с
https://launchpad.net/ubuntu/+source/dpkg/.
Извлеките файл.
cd
к корню директории исходников dpkg.
./configure
make
sudo make install
Возможно, потребуется скачать некоторые пакеты, если ./configure
завершится неудачно
.
Ответ или решение
Ваш запрос на восстановление удаленного или утерянного менеджера пакетов dpkg
в операционной системе Ubuntu 12.04 требует внимательного подхода. В данной ситуации самым важным является правильное восстановление функциональности вашей системы, поскольку dpkg
является критически важным компонентом для установки и управления программным обеспечением на системах на базе Debian, таких как Ubuntu.
Теория (Theory)
dpkg
— это низкоуровневый инструмент для установки и управления пакетами .deb, который является неотъемлемой частью системы пакетного управления в Debian и его производных, включая Ubuntu. Без dpkg
невозможно устанавливать, обновлять или удалять пакеты, что сильно ограничивает функциональность системы. В Ubuntu 12.04, особенно учитывая её возраст, важно восстановить dpkg
, чтобы обеспечить возможность установки обновлений безопасности и другого необходимого программного обеспечения.
Пример (Example)
Для воссоздания dpkg
необходимо выполнить несколько шагов. Основная задача — загрузить соответствующий .deb файл из надежного источника, извлечь его содержимое без использования самого dpkg
и вручную переместить необходимые файлы в системные директории.
-
Загрузка .deb файла:
Откройте ваш веб-браузер и перейдите на официальный сайт пакетов Ubuntu, например launchpad.net, чтобы скачать .deb файл, соответствующий вашей архитектуре и версии Ubuntu. -
Извлечение файлов:
Воспользуйтесь утилитойar
, которая может извлекать архивы в формате .deb, заменяя собойdpkg
на этом этапе. Запустите следующие команды в терминале:mkdir ~/debroot && cd ~/debroot wget https://mirrors.edge.kernel.org/ubuntu/ubuntu/pool/main/d/dpkg/dpkg_1.16.1.2ubuntu7_amd64.deb ar -x dpkg_1.16.1.2ubuntu7_amd64.deb
-
Извлечение содержимого:
После извлечения используйте командуtar
для извлечения файлов:tar -xzf data.tar.gz ./usr/bin/dpkg
-
Копирование файла:
Скопируйте бинарный файлdpkg
в системную директорию:sudo cp ./usr/bin/dpkg /usr/bin/
Применение (Application)
Теперь, когда dpkg
восстановлен, следует провести дополнительные действия для полной проверки и восстановления системы:
-
Проверка работы
dpkg
:
Убедитесь, чтоdpkg
теперь корректно функционирует. Для этого попробуйте выполнить любую команду проверки, например:dpkg --help
-
Переустановка для надежности:
Рекомендуется переустановитьdpkg
черезapt
, чтобы гарантировать, что все компоненты установлены правильно:sudo apt-get update sudo apt-get install --reinstall dpkg
-
Установка зависимостей:
Если при компиляции из исходников возникают ошибки, необходимо установить требуемые зависимости. Обычно это делается с командой:sudo apt-get build-dep dpkg
-
Информация о версии:
Поскольку ваша система устарела, важным шагом будет рассмотреть обновление до более новой версии Ubuntu, если это возможно, чтобы поддерживать актуальное и безопасное окружение.
Применение данных шагов должно успешно восстановить пакетный менеджер dpkg
в вашей системе и вернуть её в рабочее состояние. Важно всегда иметь резервные копии критических компонентов системы и быть осторожным при выполнении административных операций, чтобы избежать подобных инцидентов в будущем.