Arch User Repository (AUR) — это репозиторий, созданный сообществом для пользователей Arch. Он содержит описания пакетов (PKGBUILDs), которые позволяют скомпилировать пакет из исходного кода с помощью makepkg и затем установить его с помощью pacman.
AUR содержит скрипты, предоставленные третьими сторонами, которые позволяют устанавливать программное обеспечение с помощью скриптов. Хотя установка программ вручную может быть утомительной, существует множество вспомогательных программ, которые помогают пользователям Arch создавать и устанавливать программы из скриптов AUR.
В результате Arch Linux, имеющий относительно небольшое количество официальных пакетов (11 945 на момент написания статьи), может предложить еще 70 500 через коллекцию AUR. Это ставит объединенную коллекцию программного обеспечения Arch в один ряд с Debian и Ubuntu.
Сегодня, мы посмотрим на относительно новый проект, который называется Pacstall. Цель проекта Pacstall — предоставить пользователям Ubuntu сторонний репозиторий, похожий по стилю на Arch, а также удобный инструмент командной строки для автоматизации большей части работы. «Pacstall попытается стать AUR, который Ubuntu хотела бы иметь. Он возьмет AUR и изменит его, упростив установку программ без необходимости рыться в репозиториях GitHub и тому подобных».
Pacstall можно установить с помощью пакета Deb или однострочной команды оболочки. Я решил попробовать Pacstall на Ubuntu KDE NEON, чтобы посмотреть, как он будет работать. Читая описание проекта, я не был уверен, откуда будут браться скрипты сторонних программ. Например, мне было неясно, будет ли Pacstall использовать (и, возможно, переводить) существующие скрипты AUR, или же он будет дублировать работу AUR в новом подходе. Я не смог найти документацию, которая объясняла бы, откуда взялись эти скрипты и сколько их всего.
Немного осмотревшись, я обнаружил, что Pacstall учится устанавливать пакеты из другого хранилища, специфичного для этой программы. Это означает, что он не связан с AUR и не учится у него, а просто предоставляет аналогичную услугу. На момент написания статьи в репозитории Pacstall находится около пяти десятков рецептов для сборки стороннего программного обеспечения. Так насколько хорошо он работает?
Установка Pacstall в Ubuntu
Установить Pacstall можно из терминала командой
sudo bash -c "$(curl -fsSL https://git.io/JsADh || wget -q https://git.io/JsADh -O -)"
Как это работает
После установки Pacstall работает точно так же, как и другие менеджеры пакетов. Есть несколько основных флагов командной строки, которые мы можем использовать. Например, выполнение команды «pacstall -h» показывает список команд, которые распознает менеджер пакетов. Выполнение команды «pacstall -S name» приведет к поиску пакета с похожим именем.
Найдя пакет, который мы хотим установить, мы можем загрузить и собрать программу с помощью команды «pacstall -I package-name» или удалить ее с помощью команды «pacstall -R package-name«. Пока что все это кажется довольно простым. Флаг «-U» будет обновлять сам Pacstall, а флаг «-Up» будет пытаться обновить уже установленное программное обеспечение. Мы можем использовать флаг «-L», чтобы получить список программ, которые уже были установлены с помощью Pacstall.
Я попытался установить несколько пакетов из репозитория Pacstall. Мне понравилось то, что флаг install (-I) предлагает показать нам сценарий сборки, который он собирается запустить, и дать нам возможность отредактировать его перед выполнением каких-либо действий. Это полезно с точки зрения безопасности и означает, что мы можем настраивать сценарии установки в последний момент.
Один из аспектов Pacstall, который мне меньше всего понравился, заключается в том, что он требует административного доступа, но не проверяет, есть ли у него необходимый доступ. Если мы запустим «pacstall -I package» от имени обычного пользователя (или без sudo), то сценарий завершится с серией ошибок доступа, а не запросит пароль.
Плюсы и минусы
Я попробовал установить ряд пакетов из репозитория Pacstall. Первое, что я заметил, это то, что некоторые из доступных пакетов уже есть в репозиториях Ubuntu, что делает их избыточными. Более того, некоторые из доступных пакетов даже установлены по умолчанию в Ubuntu MATE. Возможно, они включены в попытке предоставить более современные версии программного обеспечения, уже доступного в репозиториях Ubuntu.
Следующее, о чем стоит упомянуть, — Pacstall собирает открытые компоненты пакетов из исходного кода. Для большинства пакетов это длительный процесс. Например, установка пакета bat заняла бы меньше минуты при использовании бинарных пакетов, но при сборке из исходного кода на это ушло более часа.
Другими словами, Pacstall имеет небольшой репозиторий, часть которого дублирует программы, уже доступные пользователям Ubuntu, и его установка занимает много времени, по сравнению с PPA или пакетом Nix. Надеюсь, Pacstall будет быстро развиваться, возможно, за счет импорта и доработки скриптов из AUR.
Из пакетов, которые я пытался установить через Pacstall, большинство сработали, хотя файловый менеджер Nemo не сработал, выдав ошибку о несоответствии хэша. Возможно, это признак того, что Nemo был обновлен, а порт Pacstall — нет, или что-то было повреждено в процессе загрузки. В любом случае Pacstall удалился, проработав с портом Nemo около двадцати минут.
Выводы
Как вы можете понять из последних нескольких абзацев, Pacstall находится на ранней стадии и все еще не очень уверенно себя чувствует. Ему предстоит пройти долгий путь, прежде чем он станет таким же полезным, как AUR, который он стремится эмулировать, или другие сторонние репозитории. Однако, если он сможет быстро развиваться, то у него есть потенциал предложить универсальное решение для пользователей Ubuntu, которые хотят либо установить пакеты сторонних разработчиков, либо получить более актуальное программное обеспечение, чем то, которое предоставляет Ubuntu. В долгосрочной перспективе это может оказаться более удобным, чем разрозненная, независимо поддерживаемая коллекция PPA-репозиториев, которую многие пользователи Ubuntu используют и управляют.
Пока же я задаюсь вопросом, не является ли Pacstall решением проблемы, которой не существует для большинства людей. AUR существует потому, что у Arch небольшой официальный репозиторий, и его пользователям нужен обходной путь. Ubuntu имеет огромный набор репозиториев по умолчанию, плюс Snaps, Flatpaks и большинство сторонних разработчиков программного обеспечения предоставляют инсталляторы или репозитории для Ubuntu. Редко кто хочет установить на Ubuntu что-то, что еще не упаковано для дистрибутива. Мне интересно посмотреть, что Pacstall может дать пользователям, чего не дают существующие решения.
Мне также интересно посмотреть, как далеко распространится эта концепция. Через несколько недель после анонса репозитория Pacstall появилась похожая концепция для Debian, названная Debian User Repository (DUR). Этот сервис нацелен на повторное внедрение AUR для пользователей Debian. Мне будет любопытно посмотреть, появятся ли подобные проекты, предлагающие такие же услуги в других дистрибутивах.
на арче аур бесподобен, но потому что остальных вариантов не так много либо они сложны. в убунте же их очень много. поэтому пока не рискну