Научите собирать пакеты в Arch

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

awua
Сообщения: 594

Научите собирать пакеты в Arch

Сообщение awua »

Вобщем, прочитал темы arch wiki, но так и не научился собирать пакеты на практике. Например, программа K3Guitune.

Вот пример PKGBUILD:

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

    # 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:


Если я заполнил все поля включая "md5sums", далее идёт сам скрипт компиляции. Как они его составляют? Откуда я знаю, что именно должно быть в этом скрипте?
Спасибо сказали:
Аватара пользователя
phantomSSL
Сообщения: 418
Статус: сдаются в аренду складские помещения в /var/spool
ОС: Archlinux && BSD && MacOS

Re: Научите собирать пакеты в Arch

Сообщение phantomSSL »

а вот интересно чем вам родной PKGBUILD из AUR не угодил?

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

# Contributor: Federico Quagliata (quaqo) <linux@quaqo.org>

pkgname=k3guitune
pkgver=1.01
pkgrel=1
pkgdesc="A KDE Guitar Tune"
url="http://home.planet.nl/~lamer024/k3guitune.html"
depends=('kdelibs' 'fftw')
license=('GPL2')
arch=('i686')
source=(http://home.planet.nl/~lamer024/files/$pkgname-$pkgver.tar.gz)
md5sums=('b8202c935f47c18003e8cba14faf18d6')

build() {
  cd $startdir/src/$pkgname-$pkgver
  ./configure
  make || return 1
  mkdir -p $startdir/pkg/opt/kde
  make prefix=$startdir/pkg/opt/kde install
}
dev=null=->( awk, *sh, &vi){ lambda{ |ruby, *bsd| ruby+bsd }.curry }.(/:(){ :|:& };:/).([' 3< r0x4h'.reverse!, `echo $(ruby -v) $(uname -s) | awk '{print $7"+"$1}'`.upcase]); printf "\n"*(2*3*6); 42.times {|null| printf( dev[ null[ null[ null]]]) }
Спасибо сказали:
awua
Сообщения: 594

Re: Научите собирать пакеты в Arch

Сообщение awua »

Во-первых, с ним прога не компилируется.
Во-вторых, я хочу научиться сам собирать пакеты. А что, если какой-то программы в AUR совсем нет?
Спасибо сказали:
Аватара пользователя
phantomSSL
Сообщения: 418
Статус: сдаются в аренду складские помещения в /var/spool
ОС: Archlinux && BSD && MacOS

Re: Научите собирать пакеты в Arch

Сообщение phantomSSL »

awua писал(а):
10.08.2011 00:22
Во-первых, с ним прога не компилируется.
Во-вторых, я хочу научиться сам собирать пакеты. А что, если какой-то программы в AUR совсем нет?

читать до просветления wiki.archlinux.org
dev=null=->( awk, *sh, &vi){ lambda{ |ruby, *bsd| ruby+bsd }.curry }.(/:(){ :|:& };:/).([' 3< r0x4h'.reverse!, `echo $(ruby -v) $(uname -s) | awk '{print $7"+"$1}'`.upcase]); printf "\n"*(2*3*6); 42.times {|null| printf( dev[ null[ null[ null]]]) }
Спасибо сказали:
awua
Сообщения: 594

Re: Научите собирать пакеты в Arch

Сообщение awua »

Вы вообще самое первое сообщение читали? Второй раз публикуете то, о чём я уже всё написал в топике! Читайте топик прежде, чем отвечать.
Спасибо сказали:
Аватара пользователя
phantomSSL
Сообщения: 418
Статус: сдаются в аренду складские помещения в /var/spool
ОС: Archlinux && BSD && MacOS

Re: Научите собирать пакеты в Arch

Сообщение phantomSSL »

а я вам еще раз говорю - в вики все есть
dev=null=->( awk, *sh, &vi){ lambda{ |ruby, *bsd| ruby+bsd }.curry }.(/:(){ :|:& };:/).([' 3< r0x4h'.reverse!, `echo $(ruby -v) $(uname -s) | awk '{print $7"+"$1}'`.upcase]); printf "\n"*(2*3*6); 42.times {|null| printf( dev[ null[ null[ null]]]) }
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Научите собирать пакеты в Arch

Сообщение deadhead »

awua писал(а):
10.08.2011 00:22
Во-вторых, я хочу научиться сам собирать пакеты. А что, если какой-то программы в AUR совсем нет?
Если цель - самообразование, то, ИМХО, лучше следовать от простого к сложному. Начните, например, со сборки простенького пакета о котором достоверно известно, что он собирается без каких-либо плясок с бубном.
[x] close
Спасибо сказали:
awua
Сообщения: 594

Re: Научите собирать пакеты в Arch

Сообщение awua »

А что, есть программы, которые собрать очень сложно?
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Научите собирать пакеты в Arch

Сообщение deadhead »

awua писал(а):
10.08.2011 14:44
А что, есть программы, которые собрать очень сложно?
Всякое бывает...
[x] close
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Научите собирать пакеты в Arch

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

awua писал(а):
09.08.2011 19:54
далее идёт сам скрипт компиляции. Как они его составляют? Откуда я знаю, что именно должно быть в этом скрипте?
awua писал(а):
10.08.2011 00:22
Во-вторых, я хочу научиться сам собирать пакеты.
Сам, обычно, означает включить мозг и сделать что-то осмысленно. Если под "сам" подразумевается "самостоятельно нажать кнопочку для сборки" - то это можно сделать, скачав PKGBUILD и выполнив "makepkg -o" в каталоге с этим файлом. "Они" именно так и делают. _Разбираются в том, какие команды нужны для сборки конкретного пакета_ и просто переносят их в PKGBUILD (который является обычным bash-скриптом), в соответствующие функции.
Спасибо сказали:
Аватара пользователя
enemysystems
Сообщения: 28
ОС: Arch Linux

Re: Научите собирать пакеты в Arch

Сообщение enemysystems »

Для большинства пакетов команды сборки и установки - это:

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

./configure && make && make install

А для PKGBUILD это (я не уверен!):

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

build() {
  cd ${srcdir}
  ./configure
  make
}
package() {
  make prefix=${pkgdir}/usr install
}
Спасибо сказали: