Arch User Repository (Русский)
Ссылки по теме
Пользовательский репозиторий Arch (Arch User Repository, AUR) — это поддерживаемое сообществом хранилище ПО для пользователей Arch. Он содержит описания пакетов (файлы PKGBUILD), которые позволят вам скомпилировать пакет из исходников с помощью makepkg и затем установить его, используя pacman. AUR был создан, чтобы объединить и предоставить в общий доступ новые пакеты от сообщества и способствовать скорому включению популярных пакетов в репозиторий community. На этой странице вы можете узнать получить доступ к AUR и как его использовать.
Большое количество пакетов, которые включаются в официальные репозитории, начинают свой путь с AUR. В AUR пользователи могут добавлять свои собственные сборки пакетов (PKGBUILD
и другие необходимые файлы). Сообществу предоставлена возможность голосовать за эти пакеты или против них. Если пакет становится популярным, распространяется под подходящей лицензией и может быть собран без дополнительных сложностей, то, вероятно, он будет перенесен в репозиторий community (непосредственно доступный при помощи утилит pacman и abs).
Contents
- 1 Приступая к работе
- 2 История
- 3 Поиск
- 4 Установка пакетов
- 5 Обратная связь
- 6 Распространение и поддержка пакетов
- 7 Репозиторий git
-
8 Часто задаваемые вопросы
- 8.1 Что такое AUR?
- 8.2 Какие типы пакетов разрешены в AUR?
- 8.3 Как я могу голосовать за пакеты в AUR?
- 8.4 Кто такие доверенные пользователи/TU?
- 8.5 В чем разница между AUR и репозиторием community?
- 8.6 Что необходимо для перемещения PKGBUILD в репозиторий community?
- 8.7 Как создать PKGBUILD?
- 8.8 Я пробую запустить "pacman -S foo", но получаю ошибку, хотя знаю, что этот пакет есть в репозитории community
- 8.9 Пакет из AUR устарел, что я могу сделать?
- 8.10 Я хочу предоставить свой PKGBUILD; кто-нибудь может проверить его на наличие ошибок?
- 8.11 Пакет foo из AUR не собирается, когда я запускаю makepkg; что мне делать?
- 8.12 Как ускорить повторную сборку?
- 8.13 Как получить доступ к неподдерживаемым пакетам?
- 8.14 Как я могу выгрузить файлы в AUR, не пользуясь веб-интерфейсом?
- 9 Смотрите также
Приступая к работе
Пользователи могут искать и скачивать файлы PKGBUILD
через веб-интерфейс AUR. Эти файлы содержат информацию для сборки обычных пакетов, используя makepkg, и затем устанавливать их при помощи pacman.
- Удостоверьтесь, что у вас установлена группа пакетов base-devel (
pacman -S --needed base-devel
). - Прочитайте эту статью до конца для получения дополнительной информации и краткого руководства по установке пакетов из AUR.
- Посетите веб-интерфейс AUR, чтобы узнать о новинках и событиях. Там же вы найдете статистику и свежий список недавно добавленных в AUR пакетов.
- Просмотрите раздел #FAQ для получения ответов на часто задаваемые вопросы.
- Вы можете также настроить
/etc/makepkg.conf
для включения оптимизации под ваш процессор перед тем, как начинать сборку пакетов из AUR. Значительное уменьшение времени компиляции может быть достигнуто на системах с многоядерными процессорами путем изменения значения переменнойMAKEFLAGS
. Также пользователи могут включить специфичные для конкретного оборудования оптимизации в gcc при помощи переменнойCFLAGS
. Для получения дополнительной информации смотрите статью makepkg.
История
Вначале был сетевой каталог ftp://ftp.archlinux.org/incoming
, куда люди вносили свой вклад путем простой выгрузки файлов PKGBUILD, а также необходимых дополнительных файлов и собранного пакета. Пакет и связанные с ним файлы оставались на сервере до тех пор, пока мейнтейнер пакета не проверял и не принимал программу для включения в официальный репозиторий.
После были созданы репозитории доверенных пользователей. Нескольким участникам сообщества было разрешено содержать свои собственные репозитории с общим доступом. AUR вырос на их основе с целью предоставить более гибкую и удобную систему. На самом деле, AUR-мэйнтейнеры до сих пор упоминаются как доверенные пользователи (TU, Trusted Users).
Поиск
Web-интерфейс AUR доступен по адресу https://aur.archlinux.org, а интерфейс для доступа из скриптов — по адресу https://aur.archlinux.org/rpc.php.
Поиск названий пакетов и их описание идет при помощи оператора LIKE в БД MySQL. Это дает возможность создавать более гибкие запросы (к примеру, попробуйте поискать tool%like%grep
вместо tool like grep
). Если вам необходимо найти описание, в котором содержится символ %
, экранируйте его так: \%
.
Установка пакетов
Установка пакетов из AUR относительно проста. Необходимо:
- Скачать архив, содержащий PKGBUILD и, возможно, другие требуемые файлы, такие как юниты systemd и патчи (но, чаще всего, не сам исходный код).
- Извлечь архив (предпочтительно в каталог, предназначенный лишь для сборки из AUR) при помощи команды
tar -xvf foo.tar.gz
. - Выполнить
makepkg
в каталоге с извлеченными файлами (makepkg -s
автоматически установит необходимые зависимости при помощи pacman). Эта команда скачает и скомпилирует исходный код, а также соберет пакет. - Заглянуть в файл README в
src/
, поскольку в нем может содержаться информация, необходимая позднее. - Установить готовый пакет при помощи pacman:
-
# pacman -U /path/to/pkg.tar.xz
Инструменты для работы с AUR позволяют автоматизировать указанные шаги. Они различаются по возможностям, но все они способны помочь в поиске, получении, сборке и установке из PKGBUILD
, которые находятся в AUR. Все эти скрипты могут быть найдены в AUR.
Подготовка
Для начала установите необходимые утилиты. Группы пакетов base-devel должно быть достаточно. Она включает в себя утилиту make и другие инструменты, необходимые для компиляции из исходников.
Теперь выберите подходящий каталог для сборки. Каталог сборки — это просто место, в котором пакет будет создан или "собран", и им может быть любой каталог в системе. Обычно выбирают что-то наподобие:
~/builds
или, если используется ABS (Arch Build System), то:
/var/abs/local
Более подробно о ABS читайте статью Arch Build System. В примерах дальше ~/builds
будет использоваться в качестве каталога для сборки.
Получение файлов
Найдите пакет в AUR. Это делается с помощью поиска (текстовое поле наверху страницы https://aur.archlinux.org/). После перехода по одной из ссылок из списка найденных результатов откроется страница информации о выбранном пакете. Прочтите описание и убедитесь, что это то, что вы искали, обратите внимание на то, когда пакет последний раз обновлялся и прочтите комментарии.
Скачайте необходимые файлы для сборки. Для этого нажмите на ссылку "Скачать архив" под заголовком "Действия над пакетом" справа. Этот файл должен быть сохранен в каталог для сборки или скопирован туда после скачивания. Для нашего примера архив будет называться "foo.tar.gz" (стандартный формат — имяпакета.tar.gz, если он был правильно выгружен в AUR).
Также вы можете скачать архив при помощи терминала, сперва перейдя в каталог сборки:
$ cd ~/builds $ curl -L -O https://aur.archlinux.org/packages/fo/foo/foo.tar.gz
Сборка пакета
Распакуйте tar-архив. Для этого перейдите в директорию для сборки и выполните:
$ cd ~/builds $ tar -xvf foo.tar.gz
После этого в ~/builds
сборки появится новый каталог "foo".
$ cd foo $ nano PKGBUILD $ nano foo.install
Соберите пакет. После ручной проверки целостности файлов запустите makepkg от имени обычного пользователя:
$ makepkg -s
С опцией -s
для установки любых необходимых зависимостей будет использован sudo. Если использование sudo нежелательно, то заранее установите все необходимые зависимости и не вызывайте makepkg с опцией -s
.
Установка пакета
Установите пакет, используя pacman. Созданный пакет должен иметь имя:
<имя приложения>-<номер версии приложения>-<номер ревизии пакета>-<архитектура>.pkg.tar.xz
Установите его при помощи pacman с ключом -U
("upgrade"):
# pacman -U foo-0.1-1-i686.pkg.tar.xz
Такие пакеты, установленные вручную, именуются посторонними: это пакеты, не представленные ни в одном из репозиториев, известных pacman. Чтобы увидеть список всех посторонних пакетов, выполните:
$ pacman -Qm
Обратная связь
Веб-интерфейс AUR имеет возможность комментирования, благодаря которой пользователи могут сообщить мэйнтейнеру PKGBUILD
о предложениях и улучшениях. Тем не менее, не стоит добавлять патчи или PKGBUILD
в свои комментарии, так как они очень быстро устаревают и, в итоге, просто занимают место. Вместо этого отправляйте такие файлы на email мэйнтейнера или даже используйте pastebin.
Одним из самых простых действий для всех пользователей Arch Linux является обзор AUR и голосование за понравившиеся пакеты.
Каждый пакет может быть имеет право быть принятым кем-нибудь из доверенных пользователей для включения в репозиторий community. Количество голосов — один из важных критериев, поэтому в интересах пользователей активное голосование за пакеты.
Распространение и поддержка пакетов
При помощи AUR, пользователи могут распространять свои файлы PKGBUILD. В репозитории не хранится каких-либо бинарных пакетов, но он позволяет пользователям выгружать файлы PKGBUILD
, которые потом могут быть скачаны другими. Файлы PKGBUILD не проходят тщательную проверку (и не поддерживаются официально), поэтому вы используете их на свой страх и риск.
Отправка пакетов
После входа в AUR пользователь может отправить архив *.tar.gz
, куда упакован каталог, содержащий файлы для сборки: PKGBUILD, .AURINFO, все .install
, патчи и т. д. (но никаких бинарных файлов!). Примеры того, что может содержаться в таком архиве, можно найти в каталоге /var/abs
, если была установлена ABS.
Архив может быть создан при помощи следующей команды, предоставляемой пакетом pkgbuild-introspection:
$ mkaurball
Обратите внимание, что будет создан архив .tar.gz. Предположим, что вы создаете пакет для libfoo. Тогда содержимое архива должно выглядеть наподобие этого:
$ tar tf libfoo-0.1-1.src.tar.gz
libfoo/ libfoo/.AURINFO libfoo/PKGBUILD libfoo/libfoo.install
При отправке пакетов в AUR придерживайтесь следующих правил:
- Проверьте официальную базу данных пакетов на наличие этого пакета. Если для него существует любая версия, не выкладывайте пакет. Если официальный пакет устарел, пометьте его как устаревший. Если официальный пакет заброшен или не предоставляет какую-либо функцию, пожалуйста, создайте баг-репорт.
- Проверьте AUR на наличие этого пакета. Если он в настоящее время поддерживается, о необходимых изменениях можно написать в комментариях, чтобы мейнтейнер обратил на это внимание. Если он не поддерживается, пакет может быть принят и вы можете его обновлять по мере необходимости. Не создавайте дублирующиеся пакеты.
- Внимательно проверьте, что то, что вы отправляете, не содержит ошибок. При создании
PKGBUILD
обязательно прочтите и придерживайтесь стандартов для создания пакетов Arch. Это необходимо для нормального функционирования и успешной работы AUR. Уважайте личное время каждого пользователя и не тратьте его на исправление ваших ошибок вPKGBUILD
. - Пакеты, содержащие бинарные файлы, либо оформленные небрежно могут быть удалены без предупреждения.
- Если вы сомневаетесь в пакете (или в каком либо из шагов его создания), отправьте
PKGBUILD
в почтовую рассылку AUR или на форум AUR для публичного обсуждения, прежде чем добавлять его непосредственно в AUR - Задайте себе вопрос — будет ли пакет еще кому-нибудь полезен?. Не очень ли он узкоспециализированный? Если он будет полезен более, чем ограниченной группе людей, пакет подходит для AUR.
- AUR и официальные репозитории предназначены для пакетов, преимущественно устанавливающих программное обеспечение и содержимое, относящееся к нему, и включающих что-либо из следующего: исполняемый(е) или конфигурационный(е) файл(ы), online- или offline-документацию для конкретных программ или дистрибутива Arch Linux в целом; медиафайлы, используемые программным обеспечением напрямую.
- Наберитесь немного опыта, прежде чем предоставлять пакеты в AUR. Изучите и соберите несколько пакетов других пользователей, прежде чем отправлять свои.
- Если вы отправляете архив
package.tar.gz
, в котором содержится файл с именемpackage
, вы получите ошибку "Could not change to directory/home/aur/unsupported/package/package
". Чтобы решить эту проблему, переименуйте файлpackage
во что-нибудь другое, например,package.rc
. Во время установки в каталогеpkg
вы сможете переименовать его обратно вpackage
.
Поддержка пакетов
- Если вы занимаетесь поддержкой пакета и хотите обновить его
PKGBUILD
, просто отправьте пакет еще раз. - Поддерживайте обратную связь: следите за комментариями других пользователей и вносите улучшения, которые они предлагают. Относитесь к этому, как к процессу обучения!
- Пожалуйста, не пишите комментариев, содержащих номер версии при каждом обновлении пакета. Благодаря этому раздел комментариев будет удобен для полезного содержимого, о котором упомянуто выше. Для проверки наличия обновлений гораздо лучше подходят инструменты для работы с AUR.
- Не забрасывайте свои пакеты! Именно создатель пакета должен его сопровождать, проверять обновления и улучшать
PKGBUILD
. - Если вы по каким-то причинам больше не хотите продолжать поддерживать пакет, откажитесь от него (
disown
) в веб-интерфейсе AUR и/или отправьте сообщение в почтовую рассылку AUR.
Прочие запросы
- Запросы на отказ от поддержки пакета или его удаление можно создать, нажав на ссылку "File Request" в меню "Действия над пакетом" справа. В этом случае автоматически будет отправлено уведомление текущему мэйнтейнеру пакета по электронной почте и в почтовую рассылку aur-requests для обсуждения. После этого доверенные пользователи примут или отвергнут запрос
- Запросы на отказ от поддержки пакета будут выполнены в течение двух недель, если текущий мэйнтейнер не вмешается
- Было реализовано слияние пакетов: пользователи все равно должны повторно отправлять пакет под новым именем, но при этом могут сделать запрос слияние комментариев и голосов из старых пакетов.
- Запросы на удаление должны содержать следующую информацию:
- Причину удаления, хотя бы короткую запись
Заметьте, что только лишь комментариев к пакету недостаточно для указания причины его удаления. Чтобы доверенные пользователи предприняли какие-либо действия, единственное место, куда следует отправлять данную информацию — почтовая рассылка aur-requests. - Информацию по поддержке: например, то, что содержимое пакета предоставляется другим пакетом, или то, что он был переименован с согласия владельца, и т.д.
- Для запросов на слияние: имена нового и исходных пакетов.
- Причину удаления, хотя бы короткую запись
Запросы на удаление могут быть отвергнуты, в случае чего вам предложат просто отказаться от поддержки пакета.
Репозиторий git
В git-репозитории git://pkgbuild.com/aur-mirror.git
хранится полная копия всего содержимого AUR с историей изменений, которая обновляется хотя бы раз в день. Если вам не нужна история коммитов, используйте опцию --depth=1
, что может значительно ускорить процесс:
$ git clone --depth=1 git://pkgbuild.com/aur-mirror.git
Вы можете также просмотреть содержимое репозитория из браузера по адресу http://pkgbuild.com/git/aur-mirror.git/.
Для получения дополнительной информации загляните в эту ветку форума.
Часто задаваемые вопросы
Что такое AUR?
AUR (Arch User Repository, пользовательский репозиторий Arch) — это место, куда пользователи Arch Linux могут загружать файлы PKGBUILD приложений, библиотек и т. д. и предоставлять к ним доступ всему сообществу. Попутно пользователи могут голосовать за понравившиеся им пакеты для перемещения их в репозиторий community, после чего пакеты станут доступны для пользователей в бинарном виде.
Какие типы пакетов разрешены в AUR?
Пакеты AUR — это просто "скрипты сборки" исполняемых файлов для последующей упаковки полученных бинарных файлов в пакет и установки при помощи pacman. Обычно разрешено все, что удовлетворяет вышеуказанным принципам полезности, инструкциям и лицензионным требованиям программного обеспечения. Но в некоторых случаях прямо указано, что запрещено создавать ссылки на скачивание, например, когда контент запрещен к распространению, вы можете использовать лишь само имя файла в качестве исходника. Это означает, что пользователь должен самостоятельно озаботиться в получении таких файлов. Если вы сомневаетесь в правовых аспектах, лучше сначала спросить.
Как я могу голосовать за пакеты в AUR?
Зарегистрируйтесь на веб-сайте AUR для получения доступа к опции "Проголосовать за пакет" во время просмотра пакетов. После регистрации доступно также голосование из командной строки при помощи пакета aurvoteAUR.
Кто такие доверенные пользователи/TU?
Доверенный пользователь (Trusted User, TU) — это пользователь, выбранный для сопровождения AUR и репозитория community. Они поддерживают популярные файлы PKGBUILD
в community и работу AUR в целом.
В чем разница между AUR и репозиторием community?
AUR — это место, где хранятся все файлы PKGBUILD
, присланные пользователями. Сами пакеты должны быть собраны вручную при помощи makepkg. Когда файлы PKGBUILD
набирают достаточный интерес со стороны сообщества и поддержку доверенных пользователей, они собираются в пакеты, которые перемещаются в репозиторий community (поддерживаемый доверенными пользователями), из которого уже могут напрямую быть установлены при помощи pacman.
Что необходимо для перемещения PKGBUILD в репозиторий community?
Обычно необходимо как минимум 10 голосов для того, чтобы пакет мог быть перемещен в community. Однако, если доверенный пользователь захочет поддерживать пакет, он скорее всего сделает это сразу.
Получение пакетом минимально необходимого количества голосов — не единственное требование: у кого-либо из доверенных пользователей должно появиться желание поддерживать этот пакет. Доверенные пользователи не обязаны перемещать пакет в репозиторий community, даже если он имеет тысячи голосов.
В большинстве случаев очень популярные пакеты остаются в AUR по одной или нескольким из следующих причин:
- В репозиториях Arch Linux уже содержится другая версия пакета
- Пакет предназначен для AUR (например, это Инструмент для работы с AUR)
- Прямое распространение запрещено лицензией
Смотрите также статью DeveloperWiki:Community repo candidates и раздел [[AUR Trusted User Guidelines#Rules for Packages Entering the [community] Repo]].
Как создать PKGBUILD?
Прочтите статью Создание пакетов. Перед тем, как создавать PKGBUILD
проверьте, нет ли его в AUR, чтобы исключить дублирование.
Я пробую запустить "pacman -S foo", но получаю ошибку, хотя знаю, что этот пакет есть в репозитории community
Скорее всего, вы не разрешили использование репозитория community в /etc/pacman.conf
. Просто раскомментируйте соответствующие строки.
Если community в вашем файле /etc/pacman.conf
включен, попробуйте сперва запустить pacman -Syu
, чтобы синхронизировать кэш пакетов и выполнить полное обновление системы, а затем снова попробуйте установить пакет foo.
Пакет из AUR устарел, что я могу сделать?
Во-первых, вы можете пометить пакет как устаревший. Если пакет будет находиться в этом состоянии долгое время, лучше всего написать электронное письмо пользователю, который поддерживает пакет. Если вы не получите ответа в течение двух недель, можете создать orphan request. Если пакет помечен как устаревший более уже трех месяцев и в целом не обновлялся на протяжении длительного времени, пожалуйста, добавьте его в ваш orphan request.
Я хочу предоставить свой PKGBUILD; кто-нибудь может проверить его на наличие ошибок?
Если вы хотите, чтобы пользователи проверили ваш PKGBUILD
, отправьте его в почтовую рассылку aur-general. Получить помощь вы также можете в IRC-канале #archlinux на irc.freenode.net. Кроме того, вы можете использовать namcap для проверки PKGBUILD
и собранного пакета на наличие ошибок.
Пакет foo из AUR не собирается, когда я запускаю makepkg; что мне делать?
Скорее всего, вы упустили какие-то детали.
- Запустите
pacman -Syyu
перед сборкой. Возможно, ваша система не обновлена. - Убедитесь, что установлены группы пакетов "base" и "base-devel".
- Попробуйте запустить
makepkg
с опцией-s
для проверки и установки необходимых зависимостей перед началом сборки.
Первым делом просмотрите PKGBUILD
и прочтите комментарии на странице пакета в AUR. Возможно, причина несколько сложнее. Нестандартные установки CFLAGS
, LDFLAGS
и MAKEFLAGS
могут вызывать ошибки. Также возможно, что ошибки содержит сам PKGBUILD
. Если вы не можете исправить их самостоятельно, сообщите об этом пользователю, поддерживающему пакет — например, написав комментарий на странице в AUR.
Как ускорить повторную сборку?
Если вы часто компилируете код, используя gcc — скажем, пакет, использующий исходный код из репозиториев git или svn, вы можете найти полезной утилиту ccache (compiler cache).
Как получить доступ к неподдерживаемым пакетам?
Смотрите раздел #Установка пакетов.
Как я могу выгрузить файлы в AUR, не пользуясь веб-интерфейсом?
Вы можете использовать инструменты для работы с AUR, например burp или aurupAUR. Обе эти программы являются консольными.