Что такое AUR в Arch Linux и стоит ли его использовать?
Опубликовано: 2023-06-23AUR — одна из жемчужин в короне Arch Linux, предоставляющая тысячи дополнительных программных пакетов. Но безопасно ли использовать этот репозиторий, управляемый пользователями, или вам следует избегать его?
Что такое АУР?
Опасности использования AUR
Безопасность AUR: проверьте информацию о пакете и репутацию
Проверьте содержимое PKGBUILD и других файлов
Вы можете помочь другим пользователям AUR
Что такое АУР?
AUR (Arch User Repository) — это управляемый сообществом репозиторий программного обеспечения, который предоставляет более 85 000 пакетов программного обеспечения для пользователей Arch Linux. В отличие от других репозиториев Arch, таких как основные, дополнительные и мультибиблиотечные репозитории, AUR не содержит готовых к установке пакетов. Фактически, он вообще не содержит двоичных файлов или упакованного программного обеспечения.
В AUR размещаются файлы сборки пакетов, называемые PKGBUILD. Это сценарии оболочки, которые запускаются инструментом Arch makepkg
. Когда makepkg
запускается, он ищет файл с именем «PKGBUILD». Если он находит его, он открывает его и следует инструкциям внутри него, чтобы создать архив программного обеспечения на вашем компьютере. Если вы знакомы с компиляцией в командной строке, файл PKGBUILD и makepkg
работают вместе аналогично MAKEFILE и утилите make
.
Инструкции PKGBUILD загружают файлы исходного кода и другие файлы, необходимые для создания архива пакета. Инструмент pacman
вызывается автоматически для установки программного обеспечения из архива пакета.
Рискуя внести некоторую путаницу, некоторые пакеты AUR предоставляют предварительно скомпилированные двоичные файлы. Но эти двоичные файлы не размещаются в AUR, они хранятся в другом месте в Интернете. Запись AUR для этих пакетов содержит только файл PKGBUILD, который загружает предварительно скомпилированный двоичный файл на ваш компьютер.
AUR позволяет любому создать PKGBUILD для части программного обеспечения, которое он хотел бы сделать доступным для других пользователей Arch. Это могут быть пакеты с открытым или закрытым исходным кодом или даже коммерческое программное обеспечение. Пакеты AUR, получившие достаточно голосов пользователей, могут быть переведены в обычный репозиторий Arch, который называется репозиторием сообщества.
Проблема с AUR становится очевидной, когда вы сводите все к основам. Это набор скриптов от случайных пользователей в Интернете. И они хотели бы, чтобы вы запустили их на своем компьютере.
Чтобы снизить риски, загруженные скрипты проверяются квалифицированными, уважаемыми добровольцами, известными как доверенные пользователи. Доверенные пользователи проверяют и тестируют PKGBUILDS и удаляют любые содержащие опасные ошибки или злонамеренные намерения.
СВЯЗАННЫЕ С: Как обновить Arch Linux
Опасности использования AUR
Это очень редкое явление, но иногда вещи проскальзывают через сеть, несмотря на старания доверенных пользователей. Еще в 2015 году скрипт Valve Software Steam стер ваш домашний каталог, если вы ранее переместили каталог Steam в новое место.
Более зловещим был инцидент в 2005 году, когда потерянный пакет AUR был передан новому сопровождающему, который преднамеренно добавил вредоносный код в файл PKGBUILD. Эти примеры старые и необычные, но то же самое может произойти снова.
Конечно, если вы достаточно опытны, вы можете самостоятельно просмотреть содержимое файла PKGBUILD. Эта прозрачность является одной из сильных сторон AUR, но для ее использования требуются достаточные знания сценариев. И это относится только к самому файлу PKGBUILD. Если он загружает массу исходного кода приложения, теоретически это тоже следует проверить.
Другие опасности при использовании AUR связаны с распространением. Не все дистрибутивы на основе Arch достаточно похожи на Arch, чтобы AUR работал безупречно. AUR предполагает, что он устанавливается на подлинный Arch Linux, причем полностью исправленную и обновленную версию. Например, Manjaro официально не поддерживает AUR, несмотря на то, что он основан на Arch.
Но, учитывая, что ваш дистрибутив поддерживает AUR, что вы можете сделать, чтобы убедиться, что используете его максимально безопасно, независимо от того, понимаете ли вы исходный код и сценарии оболочки или нет?
Безопасность AUR: проверьте информацию о пакете и репутацию
Даже без проверки кода есть шаги, которые вы можете предпринять, чтобы решить, можно ли доверять пакету AUR.
Найдите свой пакет в AUR
Для каждого пакета есть страница в AUR. Веб-страница пакета описывает пакет, какие у него есть зависимости, какие пакеты зависят от него и другую полезную информацию. Начните расследование, зайдя в AUR и найдя свой пакет.
Какова его репутация?
Пользователи могут голосовать за пакеты, и каждому пакету также присваивается рейтинг популярности. Чем больше голосов и выше популярность, тем лучше. Это означает, что пакет хорошо известен и широко используется. Другими словами, это авторитетный пакет.
Репутация пакета является хорошим показателем его надежности. Чем больше людей используют его и голосуют за него, тем комфортнее вы можете себя чувствовать при его использовании.
Проверьте даты активности
В разделе «Сведения о пакете» вы увидите его голоса, рейтинг популярности и две даты. Первый — когда пакеты впервые были добавлены в AUR, а второй — когда пакет был обновлен в последний раз.
Дата «Последнее обновление» покажет вам, активно ли поддерживается пакет. С пакетами, которые долгое время находились в состоянии покоя, следует обращаться с осторожностью.
Является ли исходящий URL допустимым местоположением?
Также проверьте «URL исходящего потока» и убедитесь, что он ведет на действительную веб-страницу или репозиторий кода для пакета или проекта. Если это не так, что-то не так.
Читать комментарии пользователей
В нижней части каждой страницы AUR есть комментарии пользователей. Они могут распространяться на многие страницы. Посмотрите, что другие пользователи говорят о пакете и какие вопросы они задают. Также посмотрите, какие решения предлагаются для возникающих проблем. Есть свежие комментарии? У этого пакета все еще есть активная пользовательская база?
Зарегистрируйтесь и участвуйте
Если вы зарегистрируетесь в AUR и создадите бесплатную учетную запись, вы сможете оставлять комментарии и задавать вопросы. Кроме того, используйте другие ресурсы, такие как форумы и сабреддиты, чтобы спросить о пакете.
Даже если вы не разбираетесь в сценариях оболочки, все равно есть пара вещей, которые вы можете проверить.
Проверьте содержимое PKGBUILD и других файлов
Обычный способ доступа к AUR — с помощью командной строки «помощник AUR», такой как yay
, но вы также можете использовать AUR вручную.
Хорошие помощники AUR дают вам возможность проверить файл PKGBUILD, остановив установку, если вы не хотите продолжать. В ручном процессе вы ищете пакет в AUR, загружаете файл PKGBUILD и проверяете его перед использованием. Если вы согласны продолжить после того, как ознакомились с ним, вы запускаете makepkg
вручную.
Рекомендуется установить хотя бы один пакет вручную, чтобы вы знали механизм того, что помощник AUR делает в фоновом режиме. В качестве примера мы будем использовать помощник yay AUR.
Пакет был впервые представлен в 2016 году и последний раз обновлялся в мае 2023 года. На момент написания статьи это было самое последнее обновление. Также примечательно, что первоначальный отправитель, текущий сопровождающий и последний человек, упаковывавший программное обеспечение, являются одним и тем же лицом. Такая преемственность — хороший знак.
Щелкните URL-ссылку «Git Clone URL» в разделе «Сведения о пакете», чтобы скопировать ее в буфер обмена.
В окне терминала введите «git clone», пробел, а затем нажмите Shift+Ctrl+V, чтобы вставить URL-адрес в командную строку. Нажмите «Ввод», чтобы начать загрузку.
git-клон https://aur.archlinux.org/yay.git
Когда загрузка будет завершена, перейдите в новый каталог «yay».
компакт-диск да
Посмотрим, какие файлы у нас есть.
лс
Есть один файл, файл PKGBUILD. Часто есть один или два дополнительных вспомогательных файла. Просмотрите и их. Мы будем использовать less
, чтобы прочитать наш единственный файл.
меньше PKGBUILD
Какие URL использует файл PKGBUILD?
Правильно сформированный файл PKGBUILD, который следует соглашениям, создаст переменные для хранения URL-адресов, которые он использует. Это дает нам аккуратный список в верхней части файла URL-адресов, на которые будет ссылаться PKGBUILD. В данном случае только один.
Мы видим, что он указывает на страницу GitHub для проекта yay
.
Страница GitHub принадлежит пользователю с тем же именем, что и сопровождающий, указанный на странице AUR для этого пакета. Это два хороших признака того, что это безопасный пакет.
Но мы продолжим и посмотрим немного глубже.
Ищите команды загрузки
Используйте функцию поиска less
для поиска в файле использования wget
или curl
. Оба этих инструмента можно использовать для извлечения удаленных файлов. PKGBUILD с хорошим поведением не должен иметь необходимости в такой деятельности.
Если вы обнаружите какие-либо случаи, рассматривайте их как красный флаг и не устанавливайте пакет, пока не убедитесь, что он безвреден. На какой URL ссылаются команды wget
или curl
? Они выглядят законными и связаны с пакетом?
Если вы можете получить подтверждение из надежного источника, что PKGBUILD заслуживает доверия, и он просто написан таким образом, который не соответствует соглашениям, вы все равно можете установить его.
Ищите rm, mv и другие опасные команды
Точно так же нет необходимости, чтобы файл PKGBUILD содержал команды rm
или mv
, и им не нужно было ссылаться на что-либо в каталоге «/dev». Если PKGBUILD напрямую вызывает pacman
или упоминает systemctl
, systemd
или любой другой жизненно важный системный компонент, такой как grub
, считайте файл PKGBUILD опасным и не запускайте его.
Вы можете выполнить шаги, которые мы использовали до сих пор, даже если вы не умеете читать сценарии оболочки. Если вы знакомы с некоторыми сценариями оболочки, вы можете просмотреть фактический код в файле PKGBUILD.
Остерегайтесь запутанного кода
Люди, которые пишут вредоносный код, часто пытаются скрыть его намерения, запутывая его. Они используют минималистский, краткий, непонятный синтаксис, поэтому трудно расшифровать, что они пытаются сделать. Если вы видите какие-либо строки, использующие перенаправление или вызывающие sed
или awk
, считайте их подозрительными.
Скопировав эти строки и перетащив их в онлайн-анализатор, такой как объяснительная оболочка.com, вы распаковаете их, чтобы вы могли увидеть, что они на самом деле делают. Если вы столкнулись с кучей скобок, точек с запятой и амперсандов, стоит использовать онлайн-парсер, чтобы перепроверить, правильно ли вы интерпретировали то, что пытается сделать строка. Но в целом трудночитаемый код — это тревожный знак.
Ваш /дом должен быть вашей крепостью
Компиляция и сборка PKGBUILD происходят в среде chroot
.
Это изолированные мини-файловые системы, которые позволяют разработчикам обрабатывать процессы в песочнице, ограничивая их доступ к остальной части файловой системы вашего компьютера и уменьшая их доступ к другим системным командам.
Если PKGBUILD напрямую манипулирует вашим домашним каталогом, рассматривайте это как предупреждение. Убедитесь, что вы полностью понимаете, что он делает, прежде чем решите запустить его.
Вы можете помочь другим пользователям AUR
С чрезвычайно популярными пакетами вы, скорее всего, будете в безопасности. Из-за большого количества пользователей проблемы обнаруживаются быстрее, и о них быстрее сообщается. Вы можете внести свой вклад, сообщив о любых обнаруженных проблемах и проголосовав за хорошие пакеты, чтобы улучшить их репутацию.
Если вы обнаружите, что с пакетом возникла проблема, из-за которой вы не хотите его устанавливать, вы можете оказаться в затруднительном положении, потому что вам нужен этот пакет. Один из способов продвижения вперед — спросить на форумах о предложениях других пакетов, которые могут удовлетворить эту конкретную потребность.
В Linux обычно есть много способов снять шкуру с любого кота.
СВЯЗАННЫЕ С: Как установить Arch Linux из графического интерфейса