Пользовательский репозиторий Arch (Arch User Repository, AUR) — это поддерживаемое сообществом хранилище ПО для пользователей Arch. Он содержит описания пакетов (файлы PKGBUILD), которые позволят вам скомпилировать пакет из исходников с помощью makepkg и затем установить его, используя pacman. AUR был создан, чтобы объединить и предоставить в общий доступ новые пакеты от сообщества и способствовать скорому включению популярных пакетов в репозиторий community.
Большое количество пакетов, которые включаются в официальные репозитории, начинают свой путь с AUR. В AUR пользователи могут добавлять свои собственные сборки пакетов (PKGBUILD и другие необходимые файлы). Сообществу предоставлена возможность голосовать за эти пакеты или против них. Если пакет становится популярным, распространяется под подходящей лицензией и может быть собран без дополнительных сложностей, то, вероятно, он будет перенесен в репозиторий community (непосредственно доступный при помощи утилит pacman и abs).
Поиск программ и пакетов в AUR
Для поиска пакетов в AUR можно воспользоваться веб-интерфейсом, доступным по адресу https://aur.archlinux.org/ Для дополнительного удобства, язык веб-интерфейса можно переключить на русский.
Если вам нужно получить доступ к поиску в AUR из скрипта, то подходящий интерфейс вы найдёте здесь https://aur.archlinux.org/rpc.php
Зависимости для установки из AUR
Поскольку при установке из AUR файлы компилируются из исходного кода, то должны быть установлены программы, содержащиеся в группе base-devel:
pacman -S --needed base-devel
Также у вас должен быть установлен git:
sudo pacman -S git
Загрузка исходного кода, сборка и установка из AUR
На странице каждого пакета после надписи Git Clone URL: или URL для git clone: (для русского языка) имеется ссылка на git репозиторий данного пакета. Скопируйте эту ссылку и составьте команду: git clone + URL, получится примерно так:
git clone https://aur.archlinux.org/имя_пакета.git
После окончания клонирования перейдите в директорию клонированного пакета:
cd имя_пакета
Проверьте, что именно будет делать программа установки:
less PKGBUILD
Внимание: этот файл может содержать любые команды Bash, в том числе и зловредные. makepkg никогда не должен запускаться как рут, это является некоторой защитой, но не нужно рассчитывать только на это. Если у вас есть сомнения, не собирайте пакет, а попросите помощи на форумах.
Запустите следующую команду как обычный пользователь:
makepkg -si
Она выполнить все необходимые действия, загрузит исходные коды и необходимые файлы, проведёт все нужные манипуляции (применит патчи и т.д.), на самом последнем этапе pacman спросит об установке файла, нажмите Enter для продложения.
Опции makepkg:
- -s/--syncdeps перед сборкой автоматически разрешает и устанавливает все зависимости с pacman. Если пакет зависит от других пакетов из AUR, вам нужно сначала установить их вручную.
- -i/--install установить пакет если он успешно собран. В качестве альтернативы собранный пакет может быть установлен с pacman -U.
Другие полезные флаги для makepkg:
- -r/--rmdeps после завершения сборки, удаляет зависимости, нужные на время сборки, поскольку после этого они не нужны. Тем не менее, эти зависимости могут понадобиться при переустановки или обновлении этого пакета в следующий раз.
- -c/--clean очищает временные файлы сборки после окончания сборки, поскольку они больше не нужны. Эти файлы обычно нужны только для отладки процесса сборки.
Обновление программ из AUR
Если вы не удалили клонированный репозиторий программы, то перейдите в него:
cd имя_пакета
Загрузите последние изменения:
git pull
И установите новый пакет:
makepkg -si
Чтобы узнать, были ли обновления, перейдите в клонированную директорию пакета и наберите команду:
git status
Она даст однозначный ответ только если вы очистили временные файлы, используемые при сборке (задали ключ -c для makepkg).
Если вы удалили клонированную директорию пакета, то для обновления заново пройдите все шаги, начиная с клонирования репозитория.
Близкие статьи
- Автоматическая установка и обновление пакетов AUR (100%)
- Как в Arch Linux (BlackArch, Manjaro) посмотреть информацию о пакете (100%)
- Как скачать пакет без установки в Arch Linux и Manjaro. Как скачать исходный код пакета AUR (100%)
- Как установить и использовать pikaur и makepkg на сервере (100%)
- Ошибка «ModuleNotFoundError: No module named 'pikaur'» (РЕШЕНО) (90.8%)
- Восстановление из чёрного экрана при неудачной установке проприетарных AMD драйверов в BlackArch / Arch (RANDOM - 50%)
==> ОШИБКА: Запуск makepkg от имени суперпользователя не разрешён,
т. к. это может причинить катастрофический вред системе.
==> ОШИБКА: У вас нет прав на запись для создания пакетов в '/home/arch/winusb'.
Прерывание…
==> ОШИБКА: An unknown error has occurred. Exiting…
Ну и?
Теперь мне нужно расспрашивать, что делали, какую команду вводили, использовали ли sudo или работает из-под рута? Это плохая привычка постить ошибку без комментария: почему нельзя сразу всё написать? Почему я должен тратить своё время на наводящие вопросы: что делали, как вводили и т.д. Здесь телепатов тоже нет.
А вообще в статье есть:
su git clone https://aur.archlinux.org/winusb.git
в каталог: cd winusb без root
далее makepkg -si
==> ОШИБКА: У вас нет прав на запись для создания пакетов в '/home/arch/winusb'.
Прерывание…
==> ОШИБКА: An unknown error has occurred. Exiting…
что с правами root происходит аналогичной команды, описано выше
Вы перед git clone пишите su или sudo? Так никогда не нужно делать. В этом и ошибка. Даже без команды ls -dl /home/arch/winusb понятно, что директория принадлежит руту, поэтому вы, как обычный пользователь, не можете в неё писать. А makepkg нельзя запускать от рута. Поэтому и получается патовая ситуация.
Можете убедиться в этом сами, команда выведет вашего текущего пользователя:
а эта команда покажет владельца директории (там будет рут):
Каталог /home/arch/winusb удаляете (sudo rm -rf /home/arch/winusb) и клонируете заново от имени обычного пользователя.
Здорово! Всё получилось, не надо было от root клонировать.
Здравствуйте!
Мне нужно изменить исходный код в программе (имеется ввиду не файл PKGBUILD). Как загрузить исходные файлы и распаковать их?
Приветствую! Посмотрите Как скачать пакет без установки в Arch Linux и Manjaro. Как скачать исходный код пакета AUR.