Поиск по сайту:

Воссоздайте бинарные пакеты Debian с помощью Dpkg-repack

В этом кратком руководстве представлена полезная утилита под названием dpkg-repack, которая используется для воссоздания бинарных пакетов Debian, которые уже установлены в системе на базе Debian.

Что такое dpkg-repack?

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

Что делать, если конкретная версия определенного пакета больше не доступна где-либо еще? Не беспокойся! Поскольку они уже установлены в вашей системе, вы можете легко воссоздать файлы .deb. Привет dpkg-repack!

dpkg-repack — это инструмент архивирования пакетов Debian с командной строкой, позволяющий воссоздать двоичные пакеты Debian, которые уже установлены в вашей системе.

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

Утилита dpkg-repack может быть полезна во многих ситуациях, когда вам нужно:

  • воссоздать файлы .deb из существующих установленных пакетов Debian,
  • легко копировать пакеты из одной системы в другую,
  • сохранить текущее состояние пакета перед его обновлением,
  • резервное копирование определенной версии пакета для будущего использования,
  • сохранить определенные пакеты, которые больше не доступны для загрузки.

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

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

sudo apt install dpkg-repack

Воссоздайте бинарные пакеты Debian с помощью dpkg-repack.

1. Для целей данного руководства давайте воспользуемся приложением Microsoft Teams, которое я недавно установил на свой рабочий стол Ubuntu.

dpkg -l | grep teams

Пример вывода:

ii  teams                                         1.3.00.5153                                amd64        Microsoft Teams for Linux is your chat-centered workspace in Office 365.

У меня больше нет файла teams.deb. Я удалил его сразу после установки приложения Microsoft Teams. Я могу перейти на официальную страницу загрузки и загрузить ее еще раз. Но зачем загружать его снова и снова? Теперь я могу просто воссоздать файл teams.deb с помощью dpkg-repack.

2. Чтобы создать файл teams.deb из уже установленного пакета Teams с помощью утилиты dpkg-repack, запустите:

dpkg-repack teams

Пример вывода:

dpkg-deb: building package 'teams' in './teams_1.3.00.5153_amd64.deb'.

Воссоздайте двоичные пакеты Debian с помощью утилиты dpkg-repack.

Как видите, приведенная выше команда воссоздала файл "teams_1.3.00.5153_amd64.deb'" из пакета Teams, который уже установлен на моем рабочем столе Ubuntu. Вновь созданный файл deb будет сохранен в текущем рабочем каталоге.

Аналогичным образом вы можете преобразовать любые установленные пакеты Debian обратно в пакеты .deb с помощью утилиты dpkg-repack.

3. Также возможно воссоздать несколько файлов deb, разделенных пробелами:

dpkg-repack <package1> <package2> <package3>

4. Если вы не можете пересобрать файл deb из-за каких-либо проблем с разрешениями, попробуйте использовать среду fakeroot, как показано ниже:

fakeroot -u dpkg-repack teams

Одна интересная особенность утилиты dpkg-repack заключается в том, что если в пакет были внесены какие-либо изменения во время его распаковки (т. е. были изменены файлы в /etc), новый пакет унаследует эти изменения.

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

Шаг 1: Вы можете просмотреть содержимое этого файла deb с помощью команды:

dpkg --contents teams_1.3.00.5153_amd64.deb

Пример вывода:

drwxr-xr-x root/root         0 2020-05-26 15:15 ./
drwxr-xr-x root/root         0 2020-05-26 15:15 ./usr/
drwxr-xr-x root/root         0 2020-05-26 15:15 ./usr/bin/
-rwxr-xr-x root/root       286 2020-02-20 16:46 ./usr/bin/teams
drwxr-xr-x root/root         0 2020-05-26 15:15 ./usr/share/
.
.
.
drwxr-xr-x root/root         0 2020-05-26 15:15 ./usr/share/teams/swiftshader/
-rwxr-xr-x root/root    286264 2020-02-20 16:46 ./usr/share/teams/swiftshader/libEGL.so
-rwxr-xr-x root/root   2677296 2020-02-20 16:46 ./usr/share/teams/swiftshader/libGLESv2.so
-rwxr-xr-x root/root 114964776 2020-02-20 16:46 ./usr/share/teams/teams
-rw-r--r-- root/root   1040912 2020-02-20 16:46 ./usr/share/teams/v8_context_snapshot.bin

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

Шаг 2: dpkg-repack пригодится при установке одного и того же набора пакетов в нескольких системах: просто перенесите их с помощью внешнего жесткого диска или через локальную сеть в другие системы и установите их с помощью команды dpkg:

sudo dpkg -i <package-name>

Шаг 3. Обратите внимание, что вам все равно необходимо загрузить зависимости. Чтобы установить зависимости, запустите:

sudo apt-get -f install

Альтернативно вы можете найти зависимости пакета, как описано по следующей ссылке:

  • Как составить список зависимостей пакета в Linux

А затем воссоздайте их все с помощью dpkg-repack, как описано выше.

Шаг 4. Это также поможет, если вы захотите выполнить откат пакета до предыдущей рабочей версии. Например, предположим, что вы только что обновили пакет Vim до новой доступной версии. Если новая версия не работает должным образом, вы можете просто вернуться к старой версии, созданной ранее, с помощью dpkg-repack.

Более подробную информацию можно найти на страницах руководства:

man dpkg-repack

Связанное чтение:

  • Как собрать пакеты Debian из исходного кода
  • Как собрать пакеты из исходного кода с помощью CheckInstall
  • Как конвертировать пакеты Linux с помощью Alien

Ресурс:

  • Репозиторий dpkg-repack на GitHub

Статьи по данной тематике