Створіть PKGBUILD з .deb


11

У мене є .debпакет debian, який по суті містить двійкові файли програмного забезпечення у вигляді /usr/share/binпапки у стисненому dataфайлі та інший стислий файл метаданих, що містить контрольні суми інших файлів.

Моя мета - створити PKGBUILDправильно встановити такий пакет .deb в archlinux.

Який правильний спосіб це зробити?

Чи достатньо скопіювати вміст цього /usr/share/binкаталогу у pkg /usr/share/binфейкове середовище за допомогою build()функції? Папка буде скопійована в справжнє /usr/share/binмісце, коли вбудований пакет фактично встановлений?


6
По суті, так (за винятком використання функції пакету). Подивіться в AUR для інших пакетів, що закінчуються -binі використовуйте той самий підхід ...
jasonwryan

Відповіді:


9

Так, він буде працювати так само, як і інші PKGBUILD з бінарними джерелами - витягніть його та скопіюйте файли. Єдине , що слід відзначити, що Деб-архів складається з 3 -х інших файлів - debian-binary, control.tar.gz, data.tar.gz. makepkg буде витягувати лише архів першого рівня, а потім слід витягнути вручну data.tar.gz.

prepare() {
    tar -zxvf data.tar.gz
}

package() {
    # copy files
}

Крім того, ви можете розмістити deb-archive в неекстракційний масив, а потім витягнути лише вручну data.tar.gz:

$ ar p source.deb data.tar.gz | tar zx

makepkgзмінює поточний каталог $srcdirперед виконанням функцій, тому вам більше не потрібно включати це…
jasonwryan

@jasonwryan, кілька розробників заявили, що немає гарантії, що таке залишиться правдою. Для довголіття може бути доцільним залишити звичну cd "${srcdir}"лінію на місці.
HalosGhost

1
@HalosGhost Я цього не чув. За тією ж логікою немає гарантії, що вона стане помилковою ... :)
jasonwryan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.