Как собирать пакеты под Арч?

Вот первый попавшийся пример: http://archlinux.org.ru/forum/topic/5230/
Aivar
RusWolf, уже не однократно черным по белому говорилось: не надо так делать! Вы устанавливаете пакет в обход пакетного менеджера, в следствии чего теряете контроль зависимостей, версий и прочих плюшек, что pacman делает автоматически.
Лично я ничего не теряю, так как применяю свой PKGBUILD.
Автору очень хочется данную программу, пусть тренируется в написание своих PKGBUILD.
hoz
у Арча, в отличие от других дистрибутивов, очень уодбная и гибкая система сборки. Но я не нашёл информации по этому поводу.
Не искали. Вот, к примеру, если не хватает нашей вики.
https://github.com/aur-archive/vacuum-im-git
осталось только сделать makepkg -is
hoz
Так я это сделал ещё вчера.
Команда:
qmake CONFIG-=debug_and_release CONFIG-=debug -recursive vacuum.pro
не выполняется...
Создай свой PKGBUILD:
# Maintainer: itsme <[email protected]>

pkgname=vacuum-im
pkgver=1.2.5
pkgrel=1
pkgdesc='Crossplatform Jabber/XMPP client'
arch=('i686' 'x86_64')
url="http://www.vacuum-im.org/"
license=('GPL3')
depends=('qt4' 'openssl' 'libidn' 'libxss' 'minizip')
makedepends=('cmake')
provides=('vacuum-im' 'vacuum')
conflicts=('vacuum-im-git' 'vacuum-svn')

build() {

	cmake .. -DCMAKE_INSTALL_PREFIX=/usr
	make
}

package() {
	make DESTDIR="$pkgdir/" install
}

makepkg -si
Из github прекрасно собирается.
==> Очистка...
  -> Удаление файлов libtool...
  -> Удаление ненужных файлов...
  -> Удаление статических библиотек...
  -> Удаление отладочной информации из бинарников и библиотек...
  -> Сжатие документации (man и info)...
==> Checking for packaging issue...
==> Создание пакета "vacuum-im"...
  -> Создание файла '.PKGINFO'...
  -> Создание файла '.BUILDINFO'...
  -> Создание файла '.MTREE'...
  -> Сжатие пакета...
==> Выход из окружения fakeroot.
==> Завершена сборка пакета vacuum-im 1.2.5-1 (Чт сен  8 15:32:13 MSK 2016)
[wolf@arch-wolf vacuum-im]$ makepkg -si
==> ВНИМАНИЕ: Пакет уже собран, устанавливается существующий пакет...
==> Установка пакета 'vacuum-im' с помощью 'pacman -U'...
[sudo] пароль для wolf:
загрузка пакетов...
разрешение зависимостей...
проверка конфликтов...

Пакеты (1) vacuum-im-1.2.5-1

Будет установлено:  16,57 MiB

:: Приступить к установке? [Y/n] y
(1/1) проверка ключей                                                       [###########################################] 100%
(1/1) проверяется целостность пакета                                        [###########################################] 100%
(1/1) загрузка файлов пакетов                                               [###########################################] 100%
(1/1) проверка конфликтов файлов                                            [###########################################] 100%
(1/1) проверяется доступное место                                           [###########################################] 100%
:: Processing package changes...
(1/1) установка vacuum-im                                                   [###########################################] 100%
:: Running post-transaction hooks...
(1/1) Updating the desktop file MIME type cache...
[wolf@arch-wolf vacuum-im]$
Aivar
в такой способ, для теста, можете собрать пакет, но устанавливать не надо. Впрочем, хозяин - барин...
Так и для теста оно так не сработало в каталоге с исходником. Но и ладно.. Цель научится собирать именно пакеты, а не абы-как установить!

Aivar
Не искали. Вот, к примеру, если не хватает нашей вики.
Прочёл данную часть статьи. Суть то я понял. Но тут вот есть некоторые мысли сразу. Ведь, секции build() {} и package() {} всегда различная. Где можно поглядеть полный перечень ключей, которые в них используются?
hoz
Где можно поглядеть полный перечень ключей, которые в них используются?
да уж, как то так наверно можно
$ ls /usr/bin/
ну и затем разумеется man $1)
Ошибки в тексте-неповторимый стиль автора©
А если по теме. Давай я буду писать канкретно.
Например, встречается мне в PKGBUILD переменная srcdir. Я, конечно, могу догадаться, что она означает папку, где находится программа, но почему этого нигде не написано?
Идём дальше..
Вот 2 разных сеции BUILD из 2 различных программ:
build() {
  cd $srcdir/$pkgname-$pkgver
  ./configure --prefix=/usr --sbindir=/usr/bin --without-python
  make
}
build(){
  cd "${srcdir}"/$pkgname-1.5.0-RC2

  qmake-qt5 "CONFIG+=no_epwing_support" PREFIX="/usr"
  make
}
Как понять полностью команду?
Ещё.. если нет вообще изначльно никакого файла PKGBUILD у нужной программы. Откуда мне знать какие зависимости у неё при сборке необходимые?
hoz
Откуда мне знать какие зависимости у неё при сборке необходимые?
предполагается что ты умеешь собирать ручками и читать README
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
предполагается что ты умеешь собирать ручками и читать README
Это понятно. А как научится собирать руками?
Ксати, в wiki написано:
but user-specific changes can be made in $XDG_CONFIG_HOME/pacman/makepkg.conf or ~/.makepkg.conf
Я так понимаю, что если нужно внести изменения в makepkg, то можно создать файл ~/.makepkg.conf, которого у меня, на данный момент нет. Верно?
А вот как понимать $XDG_CONFIG_HOME/pacman/makepkg.conf ? Это что за таинственный каталог?
 
Зарегистрироваться или войдите чтобы оставить сообщение.