Поиск по сайту:

Что такое AUR в Arch Linux и стоит ли его использовать?


Посмотрите, прежде чем прыгнуть.

Ключевые выводы

Репозиторий Arch Linux AUR содержит созданное сообществом программное обеспечение, которое безопасно использовать, если вы примете некоторые простые меры предосторожности. Даже если вы не разбираетесь в сценариях оболочки, существуют индикаторы, по которым можно судить, безопасен пакет или нет.

AUR — одна из жемчужин в короне Arch Linux, предоставляющая тысячи дополнительных пакетов программного обеспечения. Но безопасно ли использовать этот управляемый пользователем репозиторий или вам следует избегать его?

Что такое АУР?

AUR (Arch User Repository) — это управляемый сообществом репозиторий программного обеспечения, который предоставляет пользователям Arch Linux более 85 000 пакетов программного обеспечения. В отличие от других репозиториев Arch, таких как основные, дополнительные и мультибиблиотечные репозитории, AUR не содержит готовых к установке пакетов. Фактически, он вообще не содержит двоичных файлов или упакованного программного обеспечения.

В AUR размещаются файлы сборки пакета, называемые PKGBUILD. Это сценарии оболочки, которые запускаются инструментом Arch makepkg. При запуске makepkg он ищет файл с именем «PKGBUILD». Если он его находит, он открывает его и следует инструкциям внутри него, чтобы создать архив пакета программного обеспечения на вашем компьютере. Если вы знакомы с компиляцией в командной строке, файл PKGBUILD и makepkg работают вместе аналогично MAKEFILE и утилите make.

Инструкции PKGBUILD загружают файлы исходного кода и другие файлы, необходимые для создания архива пакета. Инструмент pacman вызывается автоматически для установки программного обеспечения из архива пакета.

Рискуя внести некоторую путаницу, некоторые пакеты AUR поставляют предварительно скомпилированные двоичные файлы. Но эти двоичные файлы не хранятся в AUR, они хранятся в другом месте в Интернете. Запись AUR для этих пакетов содержит только файл PKGBUILD, который загружает предварительно скомпилированный двоичный файл на ваш компьютер.

По теме: Arch Linux против Ubuntu: что следует использовать?

AUR позволяет любому создать PKGBUILD для программного обеспечения, которое он хотел бы сделать доступным для других пользователей Arch. Это могут быть пакеты с открытым или закрытым исходным кодом или даже коммерческое программное обеспечение. Пакеты AUR, получившие достаточное количество голосов пользователей, могут быть переведены в обычный репозиторий Arch, называемый репозиторием сообщества.

Проблема с AUR становится очевидной, если свести ее к основам. Это коллекция скриптов от случайных пользователей из Интернета. И они хотели бы, чтобы вы запустили их на своем компьютере.

Чтобы снизить риски, загруженные сценарии проверяются квалифицированными и уважаемыми волонтерами, известными как доверенные пользователи. Доверенные пользователи проверяют и тестируют PKGBUILDS и удаляют все, что содержит опасные ошибки или злонамеренные намерения.

Связано: Как обновить Arch Linux

Опасности использования AUR

Это очень редкое явление, но иногда что-то проскакивает в сети, несмотря на старания доверенных пользователей. Еще в 2015 году скрипт Valve SoftwareSteam удалил ваш домашний каталог, если вы ранее переместили каталог Steam в новое место.

Еще более зловещим был инцидент в 2005 году, когда потерянный пакет AUR был передан новому сопровождающему, который намеренно добавил вредоносный код в файл PKGBUILD. Эти примеры старые и необычные, но то же самое может произойти снова.

Конечно, если у вас достаточно опыта, вы можете просмотреть содержимое файла PKGBUILD самостоятельно. Эта прозрачность является одной из сильных сторон AUR, но для ее использования требуются достаточные знания сценариев. И это касается только самого файла PKGBUILD. Если он собирает массу исходного кода приложения, теоретически это тоже следует проверить.

По теме: Почему я перешел с Manjaro Linux на EndeavourOS

Другие опасности использования AUR связаны с распространением. Не все дистрибутивы на основе Arch достаточно похожи на Arch, чтобы AUR работал безупречно. AUR предполагает, что он устанавливается на подлинный Arch Linux, причем полностью исправленную и обновленную версию. Манджаро, например, официально не поддерживает 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 clone https://aur.archlinux.org/yay.git

Когда загрузка завершится, перейдите в новый каталог «ура».

cd yay

Давайте посмотрим, какие файлы у нас есть.

ls

Есть один файл — PKGBUILD. Часто имеется один или два дополнительных вспомогательных файла. Просмотрите их тоже. Мы будем использовать less для чтения нашего отдельного файла.

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 из графического интерфейса

Статьи по данной тематике: