Пользовательский репозиторий 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://www.archlinux.org/packages/?name=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. [Git](/index.php/Git "Git")-репозиторий со старым содержимым AUR доступен по адресу `git://pkgbuild.com/aur-mirror.git`. Информация обновляется по крайней мере раз в день, и данный репозиторий доступен только для чтения. Если вам не нужна [история изменений](http://git-scm.com/book/en/Git-Basics-Viewing-the-Commit-History), используйте опцию `--depth=1`, что может значительно ускорить процесс:

```
$ git clone --depth=1 git://pkgbuild.com/aur-mirror.git

```

Вы можете также просмотреть содержимое репозитория из браузера по адресу [http://pkgbuild.com/git/aur-mirror.git/tree](http://pkgbuild.com/git/aur-mirror.git/tree) или посмотреть конкретный пакет `http://pkgbuild.com/git/aur-mirror.git/tree/<packagename>`, что будет гораздо быстрее и потребует меньше памяти.

Для получения дополнительной информации загляните в [эту ветку форума](https://bbs.archlinux.org/viewtopic.php?id=113099).

Также имеется [Архив 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/)