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

Преобразование пакетов DEB в пакеты Arch Linux

Мы уже узнали, как собирать пакеты для нескольких платформ и как собирать пакеты из исходного кода. Сегодня мы узнаем, как конвертировать пакеты DEB в пакеты Arch Linux.

Вы можете задаться вопросом, зачем мне конвертировать пакет DEB в пакет Arch Linux, в то время как AUR, крупнейший неофициальный репозиторий программного обеспечения, содержит почти все программное обеспечение?

Истинный! Однако некоторые пакеты не могут быть скомпилированы (например, пакеты с закрытым исходным кодом) или не могут быть собраны из AUR по разным причинам, таким как ошибка во время компиляции или недоступные файлы зависимостей.

Или у разработчика, у разработчика нет времени на сборку пакета в AUR, или он/она не любит создавать пакет AUR. Причин может быть много.

В таких случаях вы можете использовать сценарий оболочки под названием Debtap, чтобы преобразовать пакеты DEB в пакеты Arch Linux. Для тех, кому интересно, Debtap означает DEB To Arch (Linux) P упаковка.

Установите Debtap в Arch Linux

Debtap доступен в AUR, поэтому его можно установить с помощью вспомогательных инструментов AUR, таких как Paru или Yay.

Чтобы установить Debap с помощью Paru, запустите:

paru -S debtap

Использование Yay:

yay -S debtap

Также убедитесь, что в вашей системе Arch установлены пакеты bash, binutils, pkgfile и fakeroot .

После установки Debtap и всех вышеупомянутых зависимостей выполните следующую команду, чтобы создать/обновить pkgfile и базу данных Debtap.

sudo debtap -u

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

==> Synchronizing pkgfile database...
:: Updating 6 repos...
 download complete: archlinuxfr [ 151.7 KiB 67.5K/s 5 remaining]
 download complete: multilib [ 319.5 KiB 36.2K/s 4 remaining]
 download complete: core [ 707.7 KiB 49.5K/s 3 remaining]
 download complete: testing [ 1716.3 KiB 58.2K/s 2 remaining]
 download complete: extra [ 7.4 MiB 109K/s 1 remaining]
 download complete: community [ 16.9 MiB 131K/s 0 remaining]
:: download complete in 131.47s < 27.1 MiB 211K/s 6 files >
:: waiting for 1 process to finish repacking repos...
==> Synchronizing debtap database...
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 34.1M 100 34.1M 0 0 206k 0 0:02:49 0:02:49 --:--:-- 180k
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 814k 100 814k 0 0 101k 0 0:00:08 0:00:08 --:--:-- 113k
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 120k 100 120k 0 0 61575 0 0:00:02 0:00:02 --:--:-- 52381
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 35.4M 100 35.4M 0 0 175k 0 0:03:27 0:03:27 --:--:-- 257k
==> Downloading latest virtual packages list...
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 149 0 149 0 0 49 0 --:--:-- 0:00:03 --:--:-- 44
100 11890 0 11890 0 0 2378 0 --:--:-- 0:00:05 --:--:-- 8456
==> Downloading latest AUR packages list...
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 264k 0 264k 0 0 30128 0 --:--:-- 0:00:09 --:--:-- 74410
==> Generating base group packages list...
==> All steps successfully completed!

Вы должны выполнить приведенную выше команду хотя бы один раз.

Теперь пришло время преобразования пакета.

Преобразование пакетов DEB в пакеты Arch Linux с помощью Debtap

Чтобы преобразовать любой пакет DEB, скажем, Quadrapassel, в пакет Arch Linux с помощью Debap, выполните:

debtap quadrapassel_3.22.0-1.1_arm64.deb

Приведенная выше команда преобразует данный файл .deb в пакет Arch Linux. Вам будет предложено ввести имя сопровождающего пакета и лицензию. Просто введите их и нажмите клавишу ВВОД, чтобы начать процесс преобразования.

Преобразование пакета займет от нескольких секунд до нескольких минут в зависимости от скорости вашего процессора. Возьмите чашку кофе.

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

==> Extracting package data...
==> Fixing possible directories structure differencies...
==> Generating .PKGINFO file...

:: Enter Packager name:
quadrapassel

:: Enter package license (you can enter multiple licenses comma separated):
GPL

*** Creation of .PKGINFO file in progress. It may take a few minutes, please wait...

Warning: These dependencies (depend = fields) could not be translated into Arch Linux packages names:
gsettings-backend

==> Checking and generating .INSTALL file (if necessary)...

:: If you want to edit .PKGINFO and .INSTALL files (in this order), press (1) For vi (2) For nano (3) For default editor (4) For a custom editor or any other key to continue:

==> Generating .MTREE file...

==> Creating final package...
==> Package successfully created!
==> Removing leftover files...

Примечание. Пакет Quadrapassel уже доступен в официальных репозиториях Arch Linux. Я использовал его только в демонстрационных целях.

Если вы не хотите отвечать ни на какие вопросы во время преобразования пакета, используйте флаг -q, чтобы обойти все вопросы, за исключением редактирования файлов метаданных.

debtap -q quadrapassel_3.22.0-1.1_arm64.deb

Чтобы обойти все вопросы (хотя это не рекомендуется), используйте флаг -Q.

debtap -Q quadrapassel_3.22.0-1.1_arm64.deb

После завершения преобразования вы можете установить только что преобразованный пакет с помощью "pacman" в своей системе Arch, как показано ниже.

sudo pacman -U <package-name>

Получать помощь

Чтобы отобразить раздел справки, используйте флаг -h:

$ debtap -h
Syntax: debtap [options] package_filename

Options:

 -h --h -help --help Prints this help message
 -u --u -update --update Update debtap database
 -q --q -quiet --quiet Bypass all questions, except for editing metadata file(s)
 -Q --Q -Quiet --Quiet Bypass all questions (not recommended)
 -s --s -pseudo --pseudo Create a pseudo-64-bit package from a 32-bit .deb package
 -w --w -wipeout --wipeout Wipeout versions from all dependencies, conflicts etc.
 -p --p -pkgbuild --pkgbuild Additionally generate a PKGBUILD file
 -P --P -Pkgbuild --Pkgbuild Generate a PKGBUILD file only

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

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

Ресурс:

  • Репозиторий Debtap на GitHub

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