Как узнать что писать в PKGBUILD для создания пакета?

Модератор: Модераторы разделов

Ответить
awua
Сообщения: 594

Как узнать что писать в PKGBUILD для создания пакета?

Сообщение awua »

Вот пример PKGBUILD для Arch:

Код: Выделить всё

# Maintainer: Somebody <somebody[at]foo[dot]tld>
pkgname=foo
pkgver=10.0.2
pkgrel=2
pkgdesc="Foo is an example package for this PKGBUILD file."
url="http://www.foo.tld"
arch=('x86_64' 'i686')
license=('GPLv3')
depends=('php' 'mysql')
optdepends=('java-runtime')
makedepends=()
conflicts=()
replaces=()
backup=()
install='foo.install'
source=("http://www.server.tld/${pkgname}-${pkgver}.tar.gz"
        "foo.desktop")
md5sums=('a0afa52d60cea6c0363a2a8cb39a4095'
         'a0afa52d60cea6c0363a2a8cb39a4095')

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  cmake ./ -DCMAKE_INSTALL_PREFIX=/usr
  make
}

package() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  make DESTDIR="${pkgdir}" install
  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}

# vim:set ts=2 sw=2 et:


Вобщем-то тут со всем всё понятно кроме того как составлять эту часть:

Код: Выделить всё

build() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  cmake ./ -DCMAKE_INSTALL_PREFIX=/usr
  make
}

package() {
  cd "${srcdir}/${pkgname}-${pkgver}"
  make DESTDIR="${pkgdir}" install
  install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}

# vim:set ts=2 sw=2 et:


Я видел и более сложные примеры PKGBUILD, где сам скрипт build() и package() раз в 3-8 больше ( https://aur.archlinux.org/packages/op/openo...se-bin/PKGBUILD ). Читал всю wiki про эту тему, но нигде не нашёл инструкции про сам скрипт.

Так как всё-таки его составляют?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: Как узнать что писать в PKGBUILD для создания пакета?

Сообщение serzh-z »

awua писал(а):
09.02.2012 14:28
Так как всё-таки его составляют?
Цель PKGBUILD - предоставить команды для получения какого-то набора файлов, который pacman сможет установить в корень. Как эти файлы будут получены - ему всё равно и зависит от автора PKGBUILD. Если набор целевых файлов получается из исходников, то процеcс и порядок сборки зависит от этих конкретных исходников.

См. в гугле: "configure, make, make install".
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Как узнать что писать в PKGBUILD для создания пакета?

Сообщение Nazyvaemykh »

Очень просто же.

Скрипт отражает те действия, которые нужно произвести для сборки пакета. Для большого числа пакетов это традиционная триада ./configure, make, make install.

Если возникают затруднения, попробуйте, следую руководству к сборке (README или INSTALL в катлоге с исходниками) собрать программу и установить в /usr/local.
Посмотрите, что работает, что не работает. Какие могут быть трудности при адаптации именно к Arch Linux. Например, python2 и python3. Или конфликты с существуюшими файлами.

Приведенный вами пример необычен тем, что обычно PKGBUILD пишут для сборки программы из исходников, а тут у вас устанавливается бинарная версия из RPM.

¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали:
Ответить