Найти тему
ОбоВсем

Как собрать Deb-пакеты (Debian Binary Packages) из уже установленных программ

Оглавление

Инструмент dpkg-repack позволяет собирать файлы установленной программы в deb-пакет. Рассмотрим установку и работу утилиты в Debian, Ubuntu и производных

Представьте себе следующий сценарий. Вы установили несколько пакетов Debian в своей системе. И вы хотите установить те же пакеты в другой системе. Но вы потеряли двоичные архивы, то есть файлы deb. При этом у вас нет возможности скачать пакеты с их официального сайта или репозитория? Что если конкретная версия определенного пакета больше не доступна? Или, например, вы хотите собрать deb-пакет из установленной программы, но в файлах программы (не конфигурационном файле) внесены важные для вас изменения? Не переживайте! Поскольку они уже установлены в вашей системе, вы можете легко восстановить файлы .deb.

Для решения подобных проблем нам подойдет инструмент dpkg-repack, данная утилита позволяет собирать файлы установленной программы в deb-пакет. Несмотря на то, что инструмент dpkg-repack не имеет графического интерфейса, его работа максимально проста.

Установка dpkg-repack в Debian, Ubuntu и производных

Пакет dpkg-repack доступен в репозиториях по умолчанию в Debian, Ubuntu и его производных. Чтобы установить dpkg-repack достаточно запустить следующую команду:

sudo apt install dpkg-repack

Как собрать Deb-пакет из установленной программы с помощью dpkg-repack

В качестве примера будет собран deb-пакет стабильной версии браузера Opera.

dpkg -l | grep opera-stable

-2

Я мог бы скачать deb-пакет браузера, но именно в данном случае, имею ввиду в случае с браузером Opera, мне гораздо удобнее будет собрать установочный, исправленный пакет. В браузере Opera есть известная проблема с воспроизведением HTML видео с помощью кодека H.264 (легко можно проверить при включении проигрывания прямых трансляций на Youtube). Проблема встречалась и в Яндекс.Браузере и когда-то в браузере Vivaldi. По этой причине было бы гораздо лучше иметь deb-пакет браузера Opera для Linux с решенной проблемой воспроизведения видео.

Проблему с воспроизведением HTML видео в браузере Opera я решил заменой файла libffmpeg.so в директории /usr/lib/x86_64-linux-gnu/opera , это именно та директория в которую устанавливается браузер. Поэтому собранный пакет будет содержать в себе рабочий файл libffmpeg.so и при этом в нем не будет файлов пользователя (конфигурационных файлов).

Перейдём к непосредственной сборке deb-пакета Opera-stable. Выполняем следующую команду:

dpkg-repack opera-stable

-3

Времени на сборку пакета ушло чуть меньше одной минуты. Собранный установочный пакет будет расположен в Домашней папке

В случае проблем, связанных с разрешениями попробуйте собрать пакет из среды fakeroot:

fakeroot -u dpkg-repack opera-stable

При этом при сборке другой программы я столкнулся с ошибкой “ предупреждение: неизвестное информационное поле «Original-Maintainer» во входных данных в элемент в файле состояния dpkg”, решить которую не получилось.

Просмотр содержимого deb-файла

Посмотреть содержимое установочного файла можно следующей командой:

dpkg --contents opera-stable_68.0.3618.125_amd64.deb

-4

Установить собранный пакет рекомендую либо с помощью утилиты Gdebi, либо консольным вариантом:

sudo dpkg -i opera-stable_68.0.3618.125_amd64.deb

Для решения возможных проблем с зависимостями стоит воспользоваться следующей командой:

sudo apt install -f

Для более подробной информации по работает с утилитой dpkg-repack обратитесь к справочным страницам:

man dpkg-repack

Пользователи операционных систем Debian, Ubuntu и производных, если у вас не установлена версия браузера Opera с исправлением проблемы воспроизведения видео, то было бы интересно узнать ваш опыт проверки исправленной версии браузера.