Makepkg (Русский)

From ArchWiki
Revision as of 17:25, 24 March 2012 by Kynikos.bot (Talk | contribs) (http -> https://aur.archlinux.org)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

makepkg - это базовая утилита для сборки собственных пакетов, которые могут быть использованы менеджером pacman. Основанный на скриптовой системе сборки пакетов, makepkg способен загрузить из интернета и проверить на целостность исходники (например архивы tar.gz и bz2), установить параметры сборки пакета (т.к флаги CFLAGS и другие параметры компилятора), собрать пакет во временную папку и создать готовый архив соответствующий стандарту Arch, удалив все ненужное.

Установка и настройка

ABS - Система автоматической сборки пакетов Arch

Для начала, убедитесь что у вас установлены утилиты для сборки собственных пакетов, в их список входят: компилятор, линкер, некоторые базовые библиотеки и вспомогательные приложения типа automake и autoconf. Чтобы загрузить и установить их последние версии, наберите в командной строке эти команды с привилегиями root-пользователя:

# pacman -S base-devel
# pacman -S abs

Впишите Y для всех вопросов и pacman закачает и установит (или обновит) средства необходимые для создания собственных пакетов. Затем, опять-же с привилегиями root-пользователя, выполните:

# abs

Этот скрипт подсоединится к ближайшему серверу, закачает и установит дерево ABS в каталог /var/abs. По умолчанию, некоторые репозитории отключены, вы можете установить свои настройки редактируя файл /etc/abs.conf

Теперь необходимо создать папку в которой будут содержаться исходники, скрипты, патчи или прочие файлы для будущего пакета. Папку можно создать, например, в корне вашего домашнего каталога:

$ mkdir ~/abs

Makepkg

Если вы хотите иметь возможность устанавливать недостающие для сборки пакета зависимости, установите утилиту sudo и добавьте вашего пользователя в файл настройки утилиты: /etc/sudoers.

ЗАМЕТКА: в состав пакета sudo входит утилита visudo которая запускает редактор vi в особом режиме, позволяющем сразу-же отредактировать файл без изменения прав доступа.

USER_NAME    ALL=(ALL)    NOPASSWD: /usr/bin/pacman

Добавив эту строку и заменив USER_NAME именем вашего пользователя, у вас появится возможность запускать pacman без необходимости ввода пароля.

Следующий шаг - это определения папки в которой будут перемещены "свежесобранные" пакеты, например вы можете назначить здесь папку в вашем домашнем каталоге. Если этот параметр не был установлен, то пакеты будут расположены в той-же папке откуда был запущен makepkg.

Например, создайте такую папку:

$ mkdir /home/$USER/packages

и установите переменную PKGDEST в файле /etc/makepkg.conf соотвествующим образом.

Пока вы редактируете его, можете посмотреть на другие переменные влияющие на сборку ваших пакетов. Например вы можете установить переменную PACKAGER, при этом ваше имя будет добавлено к собранным пакетам, либо убрать ! перед параметром docs в массиве OPTIONS, в случае если вы не хотите чтобы makepkg удалял папку с документацией к вашему пакету. Просмотрите статью Makepkg.conf для подробной информации по возможным параметрам.

Сборка пакета

Для сборки пакета вы можете создать собственный "с нуля" следуя указаниям Руководства по сборки пакетов Arch, либо посмотреть если кто-то уже сделал это за вас поискав его на странице AUR или в дереве ABS.

Скажем например, что вы нашли какой-то очень интересующий вас пакет в AUR и вы хотите собрать его и установить (в этом примере будет приведен rufus, клиент bittorrent основанный на Python). Вы можете достать PKGBUILD и все необходимые для сборки файлы (в некоторых случаях это патчи или дополнительные скрипты) нажав на ссылку "Tarball" или "Архив", для пользователей просматривающих страницу на русском языке.

$ cd /path/to/tarball
$ tar -zxf rufus.tar.gz
$ cd rufus

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

$ makepkg

Утилита загрузит все необходимые для сборки исходники и попытается собрать пакет. Если не хватает каких-то зависимостей, makepkg сообщит об этом прежде чем завершить работу с ошибкой. Если вы хотите собрать пакет и дать возможность makepkg самому загрузить и установить необходимые зависимости, то введите эту команду:

$ makepkg -s

Обратите внимание что зависимости должны быть доступны в заранее настроенных вами репозитариях. С другой стороны вы можете собственноручно установить их командой

$ sudo pacman -S dep1 dep2 depN

После того как все необходимые зависимости были установлены и ваш пакет был собран удачно, у вас появится файл rufus-0.7.0-1.pkg.tar.gz. Вы можете установить его командой

$ sudo pacman -U rufus-0.7.0-1.pkg.tar.gz

Установка через скрипты сборки

Иногда со сторонних репозитариев вы можете обнаружить только файлы типа *.pkgbuild. В этом случае добавьте параметр -p к makepkg указав имя нужного вам сборочного скрипта:

$ makepkg -p <buildscript>

Поздравляем! Теперь вы успешно собрали и установили ваш собственный пакет!

Полезные ссылки