UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

343 lines (216 loc) 53.6 kB
Ссылки по теме * [Инструменты для работы с AUR](/index.php/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_AUR "Инструменты для работы с AUR") * [AurJson](/index.php/AurJson "AurJson") * [AUR Trusted User Guidelines](/index.php/AUR_Trusted_User_Guidelines "AUR Trusted User Guidelines") * [PKGBUILD (Русский)](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)") * [Makepkg (Русский)](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") * [pacman (Русский)](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)") * [AUR Metadata](/index.php/AUR_Metadata "AUR Metadata") * [Официальные репозитории](/index.php/%D0%9E%D1%84%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%80%D0%B5%D0%BF%D0%BE%D0%B7%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%B8 "Официальные репозитории") * [Arch Build System (Русский)](/index.php/Arch_Build_System_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch Build System (Русский)") Пользовательский репозиторий Arch (Arch User Repository, AUR) — это поддерживаемое сообществом хранилище ПО для пользователей Arch. Он содержит описания пакетов (файлы [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)")), которые позволят вам скомпилировать пакет из исходников с помощью [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") и затем установить его, используя [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.BA.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D1.8B "Pacman (Русский)"). AUR был создан, чтобы объединить и предоставить в общий доступ новые пакеты от сообщества и способствовать скорому включению популярных пакетов в репозиторий [community](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#community "Official repositories (Русский)"). На этой странице вы можете узнать как получить доступ к AUR и как его использовать. Большое количество пакетов, которые включаются в официальные репозитории, начинают свой путь с AUR. В AUR пользователи могут добавлять свои собственные сборки пакетов (`PKGBUILD` и другие необходимые файлы). Сообществу предоставлена возможность голосовать за эти пакеты или против них. Если пакет становится популярным, распространяется под подходящей лицензией и может быть собран без дополнительных сложностей, то, вероятно, он будет перенесен в репозиторий *community* (непосредственно доступный при помощи утилит [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)") и [abs](/index.php/Arch_Build_System_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch Build System (Русский)")). ## Contents * [1 Приступая к работе](#.D0.9F.D1.80.D0.B8.D1.81.D1.82.D1.83.D0.BF.D0.B0.D1.8F_.D0.BA_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B5) * [2 История](#.D0.98.D1.81.D1.82.D0.BE.D1.80.D0.B8.D1.8F) * [3 Поиск](#.D0.9F.D0.BE.D0.B8.D1.81.D0.BA) * [4 Установка пакетов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) * [4.1 Подготовка](#.D0.9F.D0.BE.D0.B4.D0.B3.D0.BE.D1.82.D0.BE.D0.B2.D0.BA.D0.B0) * [4.2 Получение файлов](#.D0.9F.D0.BE.D0.BB.D1.83.D1.87.D0.B5.D0.BD.D0.B8.D0.B5_.D1.84.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2) * [4.3 Сборка и установка пакета](#.D0.A1.D0.B1.D0.BE.D1.80.D0.BA.D0.B0_.D0.B8_.D1.83.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0) * [5 Обратная связь](#.D0.9E.D0.B1.D1.80.D0.B0.D1.82.D0.BD.D0.B0.D1.8F_.D1.81.D0.B2.D1.8F.D0.B7.D1.8C) * [6 Распространение и поддержка пакетов](#.D0.A0.D0.B0.D1.81.D0.BF.D1.80.D0.BE.D1.81.D1.82.D1.80.D0.B0.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8_.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) * [6.1 Отправка пакетов](#.D0.9E.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) * [6.1.1 Правила отправки пакетов](#.D0.9F.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.B0_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) * [6.1.2 Создание нового пакета](#.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BD.D0.BE.D0.B2.D0.BE.D0.B3.D0.BE_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0) * [6.1.3 Обновление/отправка пакета](#.D0.9E.D0.B1.D0.BD.D0.BE.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5.2F.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0) * [6.2 Поддержка пакетов](#.D0.9F.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2) * [6.3 Прочие запросы](#.D0.9F.D1.80.D0.BE.D1.87.D0.B8.D0.B5_.D0.B7.D0.B0.D0.BF.D1.80.D0.BE.D1.81.D1.8B) * [7 Репозиторий git для пакетов AUR3](#.D0.A0.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B9_git_.D0.B4.D0.BB.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2_AUR3) * [8 Часто задаваемые вопросы](#.D0.A7.D0.B0.D1.81.D1.82.D0.BE_.D0.B7.D0.B0.D0.B4.D0.B0.D0.B2.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B2.D0.BE.D0.BF.D1.80.D0.BE.D1.81.D1.8B) * [8.1 Что такое AUR?](#.D0.A7.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.BE.D0.B5_AUR.3F) * [8.2 Какие типы пакетов разрешены в AUR?](#.D0.9A.D0.B0.D0.BA.D0.B8.D0.B5_.D1.82.D0.B8.D0.BF.D1.8B_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2_.D1.80.D0.B0.D0.B7.D1.80.D0.B5.D1.88.D0.B5.D0.BD.D1.8B_.D0.B2_AUR.3F) * [8.3 Как я могу голосовать за пакеты в AUR?](#.D0.9A.D0.B0.D0.BA_.D1.8F_.D0.BC.D0.BE.D0.B3.D1.83_.D0.B3.D0.BE.D0.BB.D0.BE.D1.81.D0.BE.D0.B2.D0.B0.D1.82.D1.8C_.D0.B7.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D1.8B_.D0.B2_AUR.3F) * [8.4 Кто такие доверенные пользователи/TU?](#.D0.9A.D1.82.D0.BE_.D1.82.D0.B0.D0.BA.D0.B8.D0.B5_.D0.B4.D0.BE.D0.B2.D0.B5.D1.80.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D0.B8.2FTU.3F) * [8.5 В чем разница между AUR и репозиторием community?](#.D0.92_.D1.87.D0.B5.D0.BC_.D1.80.D0.B0.D0.B7.D0.BD.D0.B8.D1.86.D0.B0_.D0.BC.D0.B5.D0.B6.D0.B4.D1.83_AUR_.D0.B8_.D1.80.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B5.D0.BC_community.3F) * [8.6 Что необходимо для перемещения PKGBUILD в репозиторий community?](#.D0.A7.D1.82.D0.BE_.D0.BD.D0.B5.D0.BE.D0.B1.D1.85.D0.BE.D0.B4.D0.B8.D0.BC.D0.BE_.D0.B4.D0.BB.D1.8F_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D1.89.D0.B5.D0.BD.D0.B8.D1.8F_PKGBUILD_.D0.B2_.D1.80.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B9_community.3F) * [8.7 Как создать PKGBUILD?](#.D0.9A.D0.B0.D0.BA_.D1.81.D0.BE.D0.B7.D0.B4.D0.B0.D1.82.D1.8C_PKGBUILD.3F) * [8.8 Я пробую запустить "pacman -S foo", но получаю ошибку, хотя знаю, что этот пакет есть в репозитории community](#.D0.AF_.D0.BF.D1.80.D0.BE.D0.B1.D1.83.D1.8E_.D0.B7.D0.B0.D0.BF.D1.83.D1.81.D1.82.D0.B8.D1.82.D1.8C_.22pacman_-S_foo.22.2C_.D0.BD.D0.BE_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B0.D1.8E_.D0.BE.D1.88.D0.B8.D0.B1.D0.BA.D1.83.2C_.D1.85.D0.BE.D1.82.D1.8F_.D0.B7.D0.BD.D0.B0.D1.8E.2C_.D1.87.D1.82.D0.BE_.D1.8D.D1.82.D0.BE.D1.82_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82_.D0.B5.D1.81.D1.82.D1.8C_.D0.B2_.D1.80.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B8_community) * [8.9 Пакет из AUR устарел, что я могу сделать?](#.D0.9F.D0.B0.D0.BA.D0.B5.D1.82_.D0.B8.D0.B7_AUR_.D1.83.D1.81.D1.82.D0.B0.D1.80.D0.B5.D0.BB.2C_.D1.87.D1.82.D0.BE_.D1.8F_.D0.BC.D0.BE.D0.B3.D1.83_.D1.81.D0.B4.D0.B5.D0.BB.D0.B0.D1.82.D1.8C.3F) * [8.10 Я хочу предоставить свой PKGBUILD; кто-нибудь может проверить его на наличие ошибок?](#.D0.AF_.D1.85.D0.BE.D1.87.D1.83_.D0.BF.D1.80.D0.B5.D0.B4.D0.BE.D1.81.D1.82.D0.B0.D0.B2.D0.B8.D1.82.D1.8C_.D1.81.D0.B2.D0.BE.D0.B9_PKGBUILD.3B_.D0.BA.D1.82.D0.BE-.D0.BD.D0.B8.D0.B1.D1.83.D0.B4.D1.8C_.D0.BC.D0.BE.D0.B6.D0.B5.D1.82_.D0.BF.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D0.B8.D1.82.D1.8C_.D0.B5.D0.B3.D0.BE_.D0.BD.D0.B0_.D0.BD.D0.B0.D0.BB.D0.B8.D1.87.D0.B8.D0.B5_.D0.BE.D1.88.D0.B8.D0.B1.D0.BE.D0.BA.3F) * [8.11 Пакет foo из AUR не собирается, когда я запускаю makepkg; что мне делать?](#.D0.9F.D0.B0.D0.BA.D0.B5.D1.82_foo_.D0.B8.D0.B7_AUR_.D0.BD.D0.B5_.D1.81.D0.BE.D0.B1.D0.B8.D1.80.D0.B0.D0.B5.D1.82.D1.81.D1.8F.2C_.D0.BA.D0.BE.D0.B3.D0.B4.D0.B0_.D1.8F_.D0.B7.D0.B0.D0.BF.D1.83.D1.81.D0.BA.D0.B0.D1.8E_makepkg.3B_.D1.87.D1.82.D0.BE_.D0.BC.D0.BD.D0.B5_.D0.B4.D0.B5.D0.BB.D0.B0.D1.82.D1.8C.3F) * [8.12 Как ускорить повторную сборку?](#.D0.9A.D0.B0.D0.BA_.D1.83.D1.81.D0.BA.D0.BE.D1.80.D0.B8.D1.82.D1.8C_.D0.BF.D0.BE.D0.B2.D1.82.D0.BE.D1.80.D0.BD.D1.83.D1.8E_.D1.81.D0.B1.D0.BE.D1.80.D0.BA.D1.83.3F) * [8.13 Как получить доступ к неподдерживаемым пакетам?](#.D0.9A.D0.B0.D0.BA_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B8.D1.82.D1.8C_.D0.B4.D0.BE.D1.81.D1.82.D1.83.D0.BF_.D0.BA_.D0.BD.D0.B5.D0.BF.D0.BE.D0.B4.D0.B4.D0.B5.D1.80.D0.B6.D0.B8.D0.B2.D0.B0.D0.B5.D0.BC.D1.8B.D0.BC_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.B0.D0.BC.3F) * [8.14 Почему пакет пропал из AUR?](#.D0.9F.D0.BE.D1.87.D0.B5.D0.BC.D1.83_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82_.D0.BF.D1.80.D0.BE.D0.BF.D0.B0.D0.BB_.D0.B8.D0.B7_AUR.3F) * [9 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5) ## Приступая к работе Пользователи могут искать и скачивать файлы `PKGBUILD` через [веб-интерфейс AUR](https://aur.archlinux.org). Эти файлы содержат информацию для сборки обычных пакетов, используя [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)"), которые можно устанавливать при помощи pacman. * Удостоверьтесь, что у вас установлена группа пакетов [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) (`pacman -S --needed base-devel`) * Прочитайте эту статью до конца для получения дополнительной информации и краткого руководства по установке пакетов из AUR * Посетите [веб-интерфейс AUR](https://aur.archlinux.org), чтобы узнать о новинках и событиях. Там же вы найдете статистику и свежий список недавно добавленных в AUR пакетов * Просмотрите раздел [#Часто задаваемые вопросы](#.D0.A7.D0.B0.D1.81.D1.82.D0.BE_.D0.B7.D0.B0.D0.B4.D0.B0.D0.B2.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B2.D0.BE.D0.BF.D1.80.D0.BE.D1.81.D1.8B) * Вы можете также настроить `/etc/makepkg.conf` для включения оптимизации под ваш процессор перед тем, как начинать сборку пакетов из AUR. Значительное уменьшение времени компиляции может быть достигнуто на системах с многоядерными процессорами путем изменения значения переменной `MAKEFLAGS`. Также пользователи могут включить специфичные для конкретного оборудования оптимизации в gcc при помощи переменной `CFLAGS`. Для получения дополнительной информации смотрите статью [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") ## История Вначале был сетевой каталог `ftp://ftp.archlinux.org/incoming`, куда люди вносили свой вклад путем простой выгрузки файлов [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)"), а также необходимых дополнительных файлов и собранного пакета. Пакет и связанные с ним файлы оставались на сервере до тех пор, пока [мейнтейнер пакета](/index.php/Arch_Terminology_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#Package_maintainer "Arch Terminology (Русский)") не проверял и не принимал программу для включения в официальный репозиторий. После были созданы репозитории доверенных пользователей. Нескольким участникам сообщества было разрешено содержать свои собственные репозитории с общим доступом. AUR вырос на их основе с целью предоставить более гибкую и удобную систему. На самом деле, AUR-мэйнтейнеры до сих пор упоминаются как доверенные пользователи (TU, Trusted Users). Между 2015-06-08 и 2015-08-08 состоялся переход AUR с версии 3.5.1 на 4.0.0, в связи с началом использования Git для работы с PKGBUILD. ## Поиск Web-интерфейс AUR доступен по адресу [https://aur.archlinux.org](https://aur.archlinux.org), а интерфейс для доступа из скриптов — по адресу [https://aur.archlinux.org/rpc.php](https://aur.archlinux.org/rpc.php). Поиск названий пакетов и в их описании идет при помощи оператора LIKE в БД MySQL. Это дает возможность создавать более гибкие запросы (к примеру, попробуйте поискать `tool%like%grep` вместо `tool like grep`). Если вам необходимо найти описание, в котором содержится символ `%`, экранируйте его так: `\%`. ## Установка пакетов **Важно:** В Arch Linux нет и никогда не будет *официального* механизма для установки собранных из AUR пакетов. **Все пользователи AUR должны представлять себе, как происходит процесс сборки** Установка пакетов из AUR относительно проста. Необходимо: 1. Скачать архив, содержащий [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)") и, возможно, другие требуемые файлы, такие как юниты [systemd](/index.php/Systemd_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Systemd (Русский)") и патчи (но, чаще всего, не сам исходный код) 2. Извлечь архив (предпочтительно в каталог, предназначенный лишь для сборки из AUR) при помощи команды `tar -xvf *pkgname*.tar.gz` 3. Выполнить `makepkg -sri` в каталоге с извлеченными файлами. Эта команда скачает код, разрешит зависимости при помощи [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)"), скомпилирует, запакует и установит все получившиеся пакеты, после чего удалит те из них, которые были нужны только для сборки ### Подготовка Для начала убедитесь, что у вас установлены все необходимые утилиты: ``` # pacman -S --needed base-devel ``` Группы пакетов [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) должно быть достаточно. Она включает в себя утилиту [make](https://www.archlinux.org/packages/?name=make) и другие инструменты, необходимые для компиляции из исходников. **Важно:** Предполагается, что группа [base-devel](https://www.archlinux.org/groups/x86_64/base-devel/) у вас уже установлена, и поэтому пакеты из AUR не объявляют никакие пакеты из неё в качестве зависимостей, даже если сборка без них будет невозможна. Пожалуйста, убедитесь в том, что эта группа пакетов установлена, прежде чем сообщать об ошибках Теперь выберите подходящий каталог для сборки. Каталог сборки — это просто место, в котором пакет будет создан или "собран", и им может быть любой каталог в системе. В примерах из следующих разделов в качестве каталога для сборки будет использоваться `~/builds`. ### Получение файлов Найдите пакет в AUR. Это делается с помощью поиска (текстовое поле наверху [главной страницы AUR](https://aur.archlinux.org/)). После перехода по одной из ссылок из списка найденных результатов откроется страница информации о выбранном пакете. Прочтите описание и убедитесь, что это то, что вы искали, обратите внимание на то, когда пакет последний раз обновлялся, и прочтите комментарии. Существует три известных способа получить необходимые файлы без использования вспомогательных программ для работы с AUR: * Скачайте необходимые файлы для сборки. Для этого нажмите на ссылку "Загрузить снимок" под заголовком "Действия над пакетом" справа. Этот файл должен быть сохранен в каталог для сборки или скопирован туда после скачивания. В нашем примере архив будет называться `foo.tar.gz` (стандартный формат — `*имяпакета*.tar.gz`, если он был выгружен в AUR правильно) * Также вы можете скачать архив при помощи терминала, сперва перейдя в каталог сборки: ``` $ cd ~/builds $ curl -L -O https://aur.archlinux.org/cgit/aur.git/snapshot/foo.tar.gz ``` * И ещё один вариант - клонировать [Git](/index.php/Git "Git")-репозиторий, который указан в графе "URL для git clone" в разделе "Информация о пакете": ``` $ cd ~/build-repos $ git clone [https://aur.archlinux.org/foo.git](https://aur.archlinux.org/foo.git) ``` ### Сборка и установка пакета Перейдите в каталог для сборки (если вы этого еще не сделали), и распакуйте скачанный ранее пакет: ``` $ cd ~/builds $ tar -xvf foo.tar.gz ``` После этого в каталоге сборки появится новая директория `foo`. **Примечание:** Если вы клонировали git-репозиторий (`git clone`), процедура распаковки не требуется. Каталог `foo` уже был создан при клонировании **Важно:** **Внимательно проверьте все файлы.** Перейдите в новый каталог и просмотрите `PKGBUILD` и каждый файл `.install` на наличие сомнительных команд. Файлы `PKGBUILD` - это [bash](/index.php/Bash_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Bash (Русский)")-скрипты, содержащие функции, которые будут выполнены при запуске *makepkg*, и эти функции могут содержать *любые* команды или синтаксис Bash. Таким образом, вполне возможно, что в `PKGBUILD` будут содержаться небезопасные команды, добавленные туда намеренно или по недосмотру. Поскольку *makepkg* использует *fakeroot* (и никогда не должен запускаться от имени суперпользователя), есть некоторый уровень защиты, но никогда не следует полагаться на это. Если у вас есть сомнения, не собирайте пакет, а обратитесь за советом на форум или в почтовую рассылку ``` $ cd foo $ nano PKGBUILD $ nano foo.install ``` Соберите пакет. После ручной проверки целостности файлов запустите [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") от имени обычного пользователя: ``` $ makepkg -sri ``` Опция `-s`/`--syncdeps` автоматически разрешит и установит перед сборкой все необходимые зависимости при помощи [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)"), `-r`/`--rmdeps` удалит зависимости, необходимые только для сборки, а `-i`/`--install` установит получившийся пакет. **Примечание:** Приведенный выше пример дает лишь поверхностное описание процесса сборки пакета. **Настоятельно** рекомендуем прочесть статьи [makepkg (Русский)](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)") и [Arch Build System (Русский)](/index.php/Arch_Build_System_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch Build System (Русский)"), в которых представлена более подробная информация ## Обратная связь [Веб-интерфейс AUR](https://aur.archlinux.org) имеет возможность комментирования, благодаря которой пользователи могут сообщить мэйнтейнеру `PKGBUILD` о предложениях и улучшениях. Тем не менее, не стоит добавлять патчи или `PKGBUILD` в свои комментарии, так как они очень быстро устаревают и, в итоге, просто занимают место. Вместо этого отправляйте такие файлы на email мэйнтейнера или даже используйте [pastebin](/index.php/List_of_applications/Internet_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.9A.D0.BB.D0.B8.D0.B5.D0.BD.D1.82.D1.8B_pastebin "List of applications/Internet (Русский)"). Одним из самых простых действий для **всех** пользователей Arch Linux является обзор AUR и **голосование** за понравившиеся пакеты. Каждый пакет может быть принят кем-нибудь из доверенных пользователей в репозиторий [community](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#community "Official repositories (Русский)"). Количество голосов — один из важных критериев, поэтому в интересах пользователей активное голосование за пакеты. ## Распространение и поддержка пакетов При помощи AUR, пользователи могут **распространять** свои файлы [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)"). В репозитории не хранится каких-либо бинарных пакетов, но он позволяет пользователям выгружать файлы `PKGBUILD`, которые потом могут быть скачаны другими. Файлы PKGBUILD не проходят тщательную проверку (и не поддерживаются официально), поэтому вы используете их на свой страх и риск. ### Отправка пакетов **Важно:** Ожидается, что перед тем, как предоставлять пакеты, вы ознакомитесь со [стандартами создания пакетов для Arch](/index.php/Arch_packaging_standards_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch packaging standards (Русский)"), а также всеми статьями, упомянутыми внизу страницы. #### Правила отправки пакетов При отправке пакетов в AUR придерживайтесь следующих правил: * Проверьте [официальную базу данных пакетов](https://www.archlinux.org/packages/) на наличие этого пакета. Если для него существует **любая версия**, **не** выкладывайте пакет. Если официальный пакет устарел, пометьте его как устаревший. Если официальный пакет заброшен или не предоставляет какую-либо функцию, пожалуйста, создайте [баг-репорт](https://bugs.archlinux.org/). * Проверьте AUR на наличие этого пакета. Если он в настоящее время поддерживается, о необходимых изменениях можно написать в комментариях, чтобы мейнтейнер обратил на это внимание. Если он не поддерживается, пакет может быть принят и вы можете его обновлять по мере необходимости. Не создавайте дублирующиеся пакеты. * Внимательно проверьте, что то, что вы отправляете, не содержит ошибок. При создании `PKGBUILD` обязательно прочтите и придерживайтесь [стандартов для создания пакетов Arch](/index.php/Arch_packaging_standards_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch packaging standards (Русский)"). Это необходимо для нормального функционирования и успешной работы AUR. Уважайте личное время каждого пользователя и не тратьте его на исправление ваших ошибок в `PKGBUILD`. * Пакеты, содержащие бинарные файлы, либо оформленные небрежно могут быть удалены без предупреждения. * Если вы сомневаетесь в пакете (или в каком либо из шагов его создания), отправьте `PKGBUILD` в [почтовую рассылку AUR](https://mailman.archlinux.org/mailman/listinfo/aur-general) или на [форум AUR](https://bbs.archlinux.org/viewforum.php?id=4) для публичного обсуждения, прежде чем добавлять его непосредственно в AUR * Задайте себе вопрос — будет ли пакет еще кому-нибудь полезен?. Не очень ли он узкоспециализированный? Если он будет полезен более, чем ограниченной группе людей, пакет подходит для AUR. * AUR и официальные репозитории предназначены для пакетов, преимущественно устанавливающих программное обеспечение и содержимое, относящееся к нему, и включающих что-либо из следующего: исполняемый(е) или конфигурационный(е) файл(ы), online- или offline-документацию для конкретных программ или дистрибутива Arch Linux в целом; медиафайлы, используемые программным обеспечением напрямую. * Наберитесь немного опыта, прежде чем предоставлять пакеты в AUR. Изучите и соберите несколько пакетов других пользователей, прежде чем отправлять свои. #### Создание нового пакета Для получения возможности отправки пакета в AUR у пользователя должен быть [ключ SSH](/index.php/SSH_keys_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "SSH keys (Русский)"). Содержимое публичного ключа `.ssh/foo.pub` необходимо скопировать в данные пользователя в *Мою учётную запись*. Вместо использования существующего SSH-ключа рекомендуется создать новый: в этом случае вы будете иметь возможность отозвать ключ, если что-то произойдёт. Для подготовки к загрузке пакета просто клонируйте Git-репозиторий с необходимым именем: ``` $ git clone ssh://aur@aur.archlinux.org/*foobar*.git ``` Клонирование (clone) или отправка (push) в несуществующий репозиторий автоматически создаст его. Теперь вы можете добавить необходимые файлы в локальную копию репозитория. При внесении изменений в репозитории обязательно включайте в корневой каталог файлы `PKGBUILD` и `.SRCINFO`. Для создания файла `.SRCINFO` можно использовать команду *mksrcinfo* из пакета [pkgbuild-introspection](https://aur.archlinux.org/packages/pkgbuild-introspection/). **Примечание:** Файл `.SRCINFO` содержит исходные метаданные пакета. Для получения дополнительной информации смотрите раздел [Arch User Repository#AUR metadata](/index.php/Arch_User_Repository#AUR_metadata "Arch User Repository") #### Обновление/отправка пакета Для отправки новой версии пакета в AUR добавьте новые `PKGBUILD`, `.SRCINFO` и, при необходимости, другие файлы (например, файл `.install` или локальные файлы патчей `.patch`) в *staging area* при помощи команды `git add`, создайте коммит с коментарием при помощи `git commit`, и после этого отправьте изменения в AUR при помощи `git push`. Пример создания и отправки нового пакета: ``` $ mksrcinfo $ git add *PKGBUILD .SRCINFO* $ git commit -m 'Initial import' $ git push origin master ``` **Важно:** Если вы не хотите публиковать ваши данные, не забудьте установить локальное имя пользователя и электронную почту с помощью `git config user.name [...]` и `git config user.email [...]`! Намного труднее изменить опубликованную историю, смотрите: [FS#45425](https://bugs.archlinux.org/task/45425). Проверяйте ваши коммиты до их отправки! Для обновления пакета измените файл `PKGBUILD` и запустите следующие команды отслеживания изменений в репозитории Git: ``` $ mksrcinfo $ git commit -am 'Update to *1.0.0-2'* $ git push ``` Для получения дополнительной информации смотрите статью [Git](/index.php/Git "Git"). **Совет:** Если вы забыли добавить в коммит файл `.SRCINFO`, и добавили его в последующем коммите, AUR откажет в записи пакета, потому что `.SRCINFO` должен присутствовать в *каждом* изменении. Чтобы решить эту проблему, можно использовать [git rebase](https://git-scm.com/docs/git-rebase) с параметром `--root` или [git filter-branch](https://git-scm.com/docs/git-filter-branch) с параметром `--tree-filter`. ### Поддержка пакетов * Если вы занимаетесь поддержкой пакета и хотите обновить его `PKGBUILD`, просто отправьте пакет еще раз. * Поддерживайте обратную связь: следите за комментариями других пользователей и вносите улучшения, которые они предлагают. Относитесь к этому, как к процессу обучения! * Пожалуйста, не пишите комментариев, содержащих номер версии при каждом обновлении пакета. Благодаря этому раздел комментариев будет удобен для полезного содержимого, о котором упомянуто выше. Для проверки наличия обновлений гораздо лучше подходят [инструменты для работы с AUR](/index.php/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D1%81_AUR "Инструменты для работы с AUR"). * Не забрасывайте свои пакеты! Именно создатель пакета должен его сопровождать, проверять обновления и улучшать `PKGBUILD`. * Если вы по каким-то причинам больше не хотите продолжать поддерживать пакет, откажитесь от него (`disown`) в веб-интерфейсе AUR и/или отправьте сообщение в почтовую рассылку AUR. ### Прочие запросы * Запросы на отказ от поддержки пакета или его удаление можно создать, нажав на ссылку "File Request" в меню "Действия над пакетом" справа. В этом случае автоматически будет отправлено уведомление текущему мэйнтейнеру пакета по электронной почте и в [почтовую рассылку aur-requests](https://mailman.archlinux.org/mailman/listinfo/aur-requests) для обсуждения. После этого [доверенные пользователи](/index.php/Trusted_Users "Trusted Users") примут или отвергнут запрос * Запросы на отказ от поддержки пакета будут выполнены в течение двух недель, если текущий мэйнтейнер не вмешается * **Было реализовано слияние пакетов**: пользователи все равно должны повторно отправлять пакет под новым именем, но при этом могут сделать запрос слияние комментариев и голосов из старых пакетов. * Запросы на удаление должны содержать следующую информацию: * Причину удаления, хотя бы короткую запись **Заметьте**, что только лишь комментариев к пакету недостаточно для указания причины его удаления. Чтобы доверенные пользователи предприняли какие-либо действия, единственное место, куда следует отправлять данную информацию — почтовая рассылка aur-requests. * Информацию по поддержке: например, то, что содержимое пакета предоставляется другим пакетом, или то, что он был переименован с согласия владельца, и т.д. * Для запросов на слияние: имена нового и исходных пакетов. Запросы на удаление могут быть отвергнуты, в случае чего вам предложат просто отказаться от поддержки пакета. ## Репозиторий git для пакетов AUR3 Несопровождаемые пакеты 08.08.2015 были удалены из AUR при переходе на использование Git. Имеется [Архив AUR](https://github.com/aur-archive) на GitHub, содержащий все пакеты из AUR3 до перехода на AUR4. ## Часто задаваемые вопросы ### Что такое AUR? AUR (Arch User Repository, пользовательский репозиторий Arch) — это место, куда пользователи Arch Linux могут загружать файлы [PKGBUILD](/index.php/PKGBUILD_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "PKGBUILD (Русский)") приложений, библиотек и т. д. и предоставлять к ним доступ всему сообществу. Попутно пользователи могут голосовать за понравившиеся им пакеты для перемещения их в репозиторий [community](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#community "Official repositories (Русский)"), после чего пакеты станут доступны для пользователей в бинарном виде. ### Какие типы пакетов разрешены в AUR? Пакеты AUR — это просто "скрипты сборки" исполняемых файлов для последующей упаковки полученных бинарных файлов в пакет и установки при помощи [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)"). Обычно разрешено все, что удовлетворяет вышеуказанным принципам полезности, инструкциям и лицензионным требованиям программного обеспечения. Но в некоторых случаях прямо указано, что запрещено создавать ссылки на скачивание, например, когда контент запрещен к распространению, вы можете использовать лишь само имя файла в качестве исходника. Это означает, что пользователь должен самостоятельно озаботиться в получении таких файлов. Если вы сомневаетесь в правовых аспектах, лучше сначала спросить. ### Как я могу голосовать за пакеты в AUR? Зарегистрируйтесь на [веб-сайте AUR](https://aur.archlinux.org/) для получения доступа к опции "Проголосовать за пакет" во время просмотра пакетов. После регистрации доступно также голосование из командной строки при помощи пакета [aurvote](https://aur.archlinux.org/packages/aurvote/). ### Кто такие доверенные пользователи/TU? [Доверенный пользователь](/index.php/AUR_Trusted_User_Guidelines "AUR Trusted User Guidelines") (*Trusted User*, TU) — это пользователь, выбранный для сопровождения AUR и репозитория [community](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#community "Official repositories (Русский)"). Они поддерживают популярные файлы `PKGBUILD` в *community* и работу AUR в целом. ### В чем разница между AUR и репозиторием community? AUR — это место, где хранятся все файлы `PKGBUILD`, присланные пользователями. Сами пакеты должны быть собраны вручную при помощи [makepkg](/index.php/Makepkg_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Makepkg (Русский)"). Когда файлы `PKGBUILD` набирают достаточный интерес со стороны сообщества и поддержку доверенных пользователей, они собираются в пакеты, которые перемещаются в репозиторий [community](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#community "Official repositories (Русский)") (поддерживаемый доверенными пользователями), из которого уже могут напрямую быть установлены при помощи [pacman](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Pacman (Русский)"). ### Что необходимо для перемещения PKGBUILD в репозиторий community? Обычно необходимо как минимум 10 голосов для того, чтобы пакет мог быть перемещен в [community](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#community "Official repositories (Русский)"). Однако, если доверенный пользователь захочет поддерживать пакет, он скорее всего сделает это сразу. Получение пакетом минимально необходимого количества голосов — не единственное требование: у кого-либо из доверенных пользователей должно появиться желание поддерживать этот пакет. Доверенные пользователи не обязаны перемещать пакет в репозиторий *community*, даже если он имеет тысячи голосов. В большинстве случаев очень популярные пакеты остаются в AUR по одной или нескольким из следующих причин: * В репозиториях Arch Linux уже содержится другая версия пакета * Пакет предназначен для AUR (например, это [Инструмент для работы с AUR](/index.php/AUR_helpers_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "AUR helpers (Русский)")) * Прямое распространение запрещено лицензией Смотрите также статью [DeveloperWiki:Community repo candidates](/index.php/DeveloperWiki:Community_repo_candidates "DeveloperWiki:Community repo candidates") и раздел [[AUR Trusted User Guidelines#Rules for Packages Entering the [community] Repo]]. ### Как создать PKGBUILD? Прочтите статью [Создание пакетов](/index.php/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BE%D0%B2 "Создание пакетов"). Перед тем, как создавать `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-канале](/index.php/IRC_channel "IRC channel") #archlinux на irc.freenode.net. Кроме того, вы можете использовать [namcap](/index.php/Namcap "Namcap") для проверки `PKGBUILD` и собранного пакета на наличие ошибок. ### Пакет foo из AUR не собирается, когда я запускаю makepkg; что мне делать? Скорее всего, вы упустили какие-то детали. 1. Запустите `pacman -Syyu` перед сборкой. Возможно, ваша система не обновлена. 2. Убедитесь, что установлены группы пакетов "base" и "base-devel". 3. Попробуйте запустить `makepkg` с опцией `-s` для проверки и установки необходимых зависимостей перед началом сборки. Первым делом просмотрите `PKGBUILD` и прочтите комментарии на странице пакета в AUR. Возможно, причина несколько сложнее. Нестандартные установки `CFLAGS`, `LDFLAGS` и `MAKEFLAGS` могут вызывать ошибки. Также возможно, что ошибки содержит сам `PKGBUILD`. Если вы не можете исправить их самостоятельно, сообщите об этом пользователю, поддерживающему пакет — например, написав комментарий на странице в AUR. ### Как ускорить повторную сборку? Если вы часто компилируете код, используя *gcc* — скажем, пакет, использующий исходный код из репозиториев git или svn, вы можете найти полезной утилиту [ccache](/index.php/Ccache "Ccache") (compiler cache). ### Как получить доступ к неподдерживаемым пакетам? Смотрите раздел [#Установка пакетов](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2). ### Почему пакет пропал из AUR? Пакет мог быть удалён, если он не удовлетворял [правилам отправки пакетов](#.D0.9F.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.B0_.D0.BE.D1.82.D0.BF.D1.80.D0.B0.D0.B2.D0.BA.D0.B8_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2). Для уточнения причины удаления смотрите [архив aur-requests](https://lists.archlinux.org/pipermail/aur-requests/). Если пакет присутствовал в AUR3, не обязательно, что он перешёл в AUR4\. Вы можете попробовать найти его в [репозитории git для пакетов AUR3](#.D0.A0.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.82.D0.BE.D1.80.D0.B8.D0.B9_git_.D0.B4.D0.BB.D1.8F_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2_AUR3). ## Смотрите также * [Веб-интерфейс AUR](https://aur.archlinux.org) * [Почтовая рассылка AUR](https://www.archlinux.org/mailman/listinfo/aur-general) * [Git-репозиторий AUR Mirror](http://pkgbuild.com/git/aur-mirror.git/)