You are here: Home » Справка и подсказки » Как установить программу из Arch User Repository (AUR) – пользовательского репозитория Arch

Как установить программу из Arch User Repository (AUR) – пользовательского репозитория Arch

Пользовательский репозиторий 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).

Если вы удалили клонированную директорию пакета, то для обновления заново пройдите все шаги, начиная с клонирования репозитория.

5 комментариев

  1. ==> ОШИБКА: Запуск makepkg от имени суперпользователя не разрешён,
    т. к. это может причинить катастрофический вред системе.

    ==> ОШИБКА: У вас нет прав на запись для создания пакетов в '/home/arch/winusb'.
        Прерывание…

    ==> ОШИБКА: An unknown error has occurred. Exiting…

     

    • Ну и?

      Теперь мне нужно расспрашивать, что делали, какую команду вводили, использовали ли sudo или работает из-под рута? Это плохая привычка постить ошибку без комментария: почему нельзя сразу всё написать? Почему я должен тратить своё время на наводящие вопросы: что делали, как вводили и т.д. Здесь телепатов тоже нет.

      А вообще в статье есть:

      makepkg никогда не должен запускаться как рут

      • 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 нельзя запускать от рута. Поэтому и получается патовая ситуация.

          Можете убедиться в этом сами, команда выведет вашего текущего пользователя:

          whoami

          а эта команда покажет владельца директории (там будет рут):

          ls -dl /home/arch/winusb
          

          Каталог /home/arch/winusb удаляете (sudo rm -rf /home/arch/winusb) и клонируете заново от имени обычного пользователя.

          • Здорово! Всё получилось, не надо было от root клонировать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *