В Arch Linux yay
позволяет загружать и устанавливать пакеты из пользовательского репозитория AUR, что важно пользователям с недостаточным опытом.
Содержание
- Обоснование использования yay в Arch Linux
- Установка
- Синтаксис
- Основные опции
- Примеры использования
- Заключение
Обоснование использования yay в Arch Linux
Мощному менеджеру пакетов pacman
, поставляемому по умолчанию в дистрибутивах на основе Arch не хватает функции загрузки пакетов из пользовательского репозитория Arch (AUR). AUR — это поддерживаемый сообществом репозиторий, содержащий тысячи сторонних пакетов в виде сценариев установки, также известных как PKGBUILD.
Чтобы установить пакеты с помощью этих PKGBUILD, нам потребуется помощник AUR, такой как yay
, который не предустановлен в Arch Linux и недоступен в официальных репозиториях Arch.
Конечно вы можете вручную устанавливать пакеты из AUR без использования этой утилиты, но она облегчает процесс генерирования и установки пакетов с минимальным взаимодействием с пользователем.
Установка
Для установки yay
на Arch сначала загружаем следующие зависимости:
oleg@mobile:~:$ sudo pacman -S --needed base-devel git
предупреждение: archlinux-keyring-20221220-1 не устарел -- пропускается
предупреждение: autoconf-2.71-1 не устарел -- пропускается
предупреждение: automake-1.16.5-1 не устарел -- пропускается
предупреждение: binutils-2.39-4 не устарел -- пропускается
предупреждение: bison-3.8.2-4 не устарел -- пропускается
предупреждение: fakeroot-1.30.1-1 не устарел -- пропускается
предупреждение: file-5.44-1 не устарел -- пропускается
предупреждение: findutils-4.9.0-1 не устарел -- пропускается
предупреждение: flex-2.6.4-3 не устарел -- пропускается
предупреждение: gawk-5.2.1-1 не устарел -- пропускается
предупреждение: gcc-12.2.0-1 не устарел -- пропускается
предупреждение: gettext-0.21.1-2 не устарел -- пропускается
предупреждение: grep-3.8-2 не устарел -- пропускается
предупреждение: groff-1.22.4-7 не устарел -- пропускается
предупреждение: gzip-1.12-1 не устарел -- пропускается
предупреждение: libtool-2.4.7-5 не устарел -- пропускается
предупреждение: m4-1.4.19-1 не устарел -- пропускается
предупреждение: make-4.3-5 не устарел -- пропускается
предупреждение: pacman-6.0.2-5 не устарел -- пропускается
предупреждение: patch-2.7.6-8 не устарел -- пропускается
предупреждение: pkgconf-1.8.0-1 не устарел -- пропускается
предупреждение: sed-4.9-1 не устарел -- пропускается
предупреждение: sudo-1.9.12.p1-1 не устарел -- пропускается
предупреждение: texinfo-7.0.1-1 не устарел -- пропускается
предупреждение: which-2.21-5 не устарел -- пропускается
:: 1 объект в группе base-devel:
:: Repository core
1) debugedit
Выберите вариант (по умолчанию=все):
предупреждение: git-2.39.0-1 не устарел -- пропускается
разрешение зависимостей...
проверка конфликтов...
Пакеты (1) debugedit-5.0-4
Будет загружено: 0,04 MiB
Будет установлено: 0,10 MiB
:: Приступить к установке? [Y/n]
:: Получение пакетов...
debugedit-5.0-4-x86_64 43,8 KiB 107 KiB/s 00:00 [###############################################] 100%
(1/1) проверка ключей [###############################################] 100%
(1/1) проверка целостности пакета [###############################################] 100%
(1/1) загрузка файлов пакетов [###############################################] 100%
(1/1) проверка конфликтов файлов [###############################################] 100%
(1/1) проверка доступного места [###############################################] 100%
:: Обработка изменений пакета...
(1/1) установка debugedit [###############################################] 100%
:: Запуск post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
oleg@mobile:~:$
Клонируем yay
из репозитория AUR с помощью команды git clone
:
oleg@mobile:~:$ git clone https://aur.archlinux.org/yay.git
Клонирование в «yay»...
remote: Enumerating objects: 444, done.
remote: Counting objects: 100% (444/444), done.
remote: Compressing objects: 100% (329/329), done.
remote: Total 444 (delta 112), reused 443 (delta 112), pack-reused 0
Получение объектов: 100% (444/444), 93.58 КиБ | 879.00 КиБ/с, готово.
Определение изменений: 100% (112/112), готово.
oleg@mobile:~:$
Изменяем текущий рабочий каталог на только что созданный каталог с помощью команды cd
:
oleg@mobile:~:$ cd yay
oleg@mobile:~/yay:$
Используем команду makepkg
для сборки и установки утилиты:
oleg@mobile:~/yay:$ makepkg -si
==> Сборка пакета yay 11.3.1-1 (Пн 02 янв 2023 14:11:59)
==> Проверка зависимостей для запуска...
==> Проверка зависимостей для сборки...
==> Получение исходных файлов...
-> Загрузка yay-11.3.1.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 390k 100 390k 0 0 313k 0 0:00:01 0:00:01 --:--:-- 889k
==> Проверка файлов source с использованием sha256sums...
yay-11.3.1.tar.gz ... Готово
==> Распаковка исходных файлов...
-> Распаковка 'yay-11.3.1.tar.gz' с помощью bsdtar
==> Запускается build()...
pacman-git
go build -trimpath -mod=readonly -modcacherw -ldflags '-X "main.yayVersion=11.3.1" -X "main.localePath=/usr/share/locale/" -linkmode=external' -buildmode=pie -o yay
go: downloading github.com/Jguer/aur v1.0.1
go: downloading github.com/Jguer/go-alpm/v2 v2.1.2
go: downloading github.com/Jguer/votar v1.0.0
go: downloading github.com/Morganamilo/go-pacmanconf v0.0.0-20210502114700-cff030e927a5
go: downloading github.com/Morganamilo/go-srcinfo v1.0.0
go: downloading github.com/leonelquinteros/gotext v1.5.0
go: downloading golang.org/x/term v0.0.0-20220722155259-a9ba230a4035
go: downloading github.com/adrg/strutil v0.3.0
go: downloading golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab
go: downloading golang.org/x/text v0.3.7
==> Вход в окружение fakeroot...
==> Запускается package()...
msgfmt po/de.po -o po/de.mo
msgfmt po/en.po -o po/en.mo
msgfmt po/es.po -o po/es.mo
msgfmt po/eu.po -o po/eu.mo
msgfmt po/fr_FR.po -o po/fr_FR.mo
msgfmt po/id.po -o po/id.mo
msgfmt po/it_IT.po -o po/it_IT.mo
msgfmt po/ja.po -o po/ja.mo
msgfmt po/ko.po -o po/ko.mo
msgfmt po/pl_PL.po -o po/pl_PL.mo
msgfmt po/pt.po -o po/pt.mo
msgfmt po/pt_BR.po -o po/pt_BR.mo
msgfmt po/ru_RU.po -o po/ru_RU.mo
msgfmt po/sv.po -o po/sv.mo
msgfmt po/tr.po -o po/tr.mo
msgfmt po/uk.po -o po/uk.mo
msgfmt po/zh_CN.po -o po/zh_CN.mo
msgfmt po/zh_TW.po -o po/zh_TW.mo
install -Dm755 yay /home/oleg/yay/pkg/yay/usr/bin/yay
install -Dm644 doc/yay.8 /home/oleg/yay/pkg/yay/usr/share/man/man8/yay.8
install -Dm644 completions/bash /home/oleg/yay/pkg/yay/usr/share/bash-completion/completions/yay
install -Dm644 completions/zsh /home/oleg/yay/pkg/yay/usr/share/zsh/site-functions/_yay
install -Dm644 completions/fish /home/oleg/yay/pkg/yay/usr/share/fish/vendor_completions.d/yay.fish
for lang in de en es eu fr_FR id it_IT ja ko pl_PL pt pt_BR ru_RU sv tr uk zh_CN zh_TW; do \
install -Dm644 po/${lang}.mo /home/oleg/yay/pkg/yay/usr/share/locale/$lang/LC_MESSAGES/yay.mo; \
done
==> Очистка...
-> Удаление файлов libtool...
-> Удаление ненужных файлов...
-> Удаление статических библиотек...
-> Удаление отладочной информации из бинарников и библиотек...
-> Сжатие документации (man и info)...
==> Проверка сборки на ошибки...
==> Создание пакета "yay"...
-> Создание файла '.PKGINFO'...
-> Создание файла '.BUILDINFO'...
-> Создание файла '.MTREE'...
-> Сжатие пакета...
==> Выход из окружения fakeroot.
==> Завершена сборка пакета yay 11.3.1-1 (Пн 02 янв 2023 14:13:47)
==> Установка пакета 'yay' с помощью 'pacman -U'...
загрузка пакетов...
разрешение зависимостей...
проверка конфликтов...
Пакеты (1) yay-11.3.1-1
Будет установлено: 7,30 MiB
:: Приступить к установке? [Y/n]
(1/1) проверка ключей [###############################################] 100%
(1/1) проверка целостности пакета [###############################################] 100%
(1/1) загрузка файлов пакетов [###############################################] 100%
(1/1) проверка конфликтов файлов [###############################################] 100%
(1/1) проверка доступного места [###############################################] 100%
:: Обработка изменений пакета...
(1/1) установка yay [###############################################] 100%
Дополнительные зависимости для 'yay'
sudo: privilege elevation [установлено]
doas: privilege elevation
:: Запуск post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
oleg@mobile:~/yay:$
Собранные с помощью yay
пакеты будут находиться здесь:
oleg@mobile:~/.cache/yay:$
Синтаксис
yay [опции] [...]
yay [пакет(ы)]
Основные опции
- -c --complete
- Используется для завершения
- -d --defaultconfig
- Вывести конфигурацию
yay
по умолчанию - -g --currentconfig
- Вывести текущую конфигурацию
- -s --stats
- Показать статистику системных пакетов
- -w --news
- Вывести новости Arch Linux
- -c --clean
- Удалить ненужные зависимости
Примеры использования yay
Поиск пакета в AUR
Поиск пакета в репозитории AUR, в данном примере — chromium
:
oleg@mobile:~:$ yay chromium
158 aur/chromium-umatrix-git 1.4.1b6.5.g0bcb766-1 (+0 0.00)
Point and click matrix to filter net requests according to source, destination and type
157 aur/chromium-extension-return-youtube-dislike 3.0.0.7-1 (+0 0.00)
Return YouTube Dislike - chromium extension
156 aur/chromium-reduced-security 1.0.0-1 (+0 0.00)
launch Chrome with reduced Logjam security to access sites with 'weak ephemeral Diffie-Hellman public key' Cisco RV042
155 aur/chromium-extension-ban-checker-for-steam-git r93.1472a44-1 (+0 0.00)
Chrome/Chromium extension for Ban-Checker-for-Steam - git/dev
154 aur/chromium-pdfjs-git 2.7.570-2 (+0 0.00)
PDF viewer in Javascript, packaged as a Chromium extension
153 aur/chromium-chromevox latest-1 (+0 0.00)
Causes the Chromium web browser to automatically install and update the ChromeVox screen reader extention. Note: This package does not contain the extension code.
...
oleg@mobile:~:$
Поиск пакета в AUR и официальном репозитории
Для поиска пакета как в официальных репозиториях, так и в AUR используется флаг -Ss
:
oleg@mobile:~:$ yay -Ss chromium
Можно также указать несколько ключевых слов для выполнения узкого, более целенаправленного поиска следующим образом:
oleg@mobile:~:$ yay -S [term1] [term2]
Обновление пакетов
После того как вы установили утилиту, вы можете обновить все пакеты в вашей системе с помощью следующей команды:
oleg@mobile:~:$ yay -Syu
Установка пакетов
Как и в случае с любыми другими помощниками AUR, вы можете установить пакеты с помощью команды:
oleg@mobile:~:$ yay -S [имя_пакета]
Удаление пакетов
Чтобы удалить пакет используйте команду:
oleg@mobile:~:$ yay -Rns [имя_пакета]
Очистка нежелательных зависимостей
Чтобы очистить все нежелательные зависимости в вашей системе, введите команду:
oleg@mobile:~:$ yay -Yc
Вывод системной статистики
Если вы хотите вывести системную статистику, запустите:
oleg@mobile:~:$ yay -Ps
==> Yay версии v11.3.0
===========================================
==> Всего установлено пакетов: 1052
==> Установлено сторонних пакетов: 17
==> Пакеты, установленные по запросу пользователя: 157
==> Суммарный размер, занятый пакетами: 8.5 GiB
==> Размер кэша "pacman"%!(EXTRA string=/var/cache/pacman/pkg/, string=2.3 GiB)
==> Размер кэша "yay"%!(EXTRA string=/home/oleg/.cache/yay, string=4.0 KiB)
===========================================
==> 10 самых объёмных пакетов:
wine-staging: 539.4 MiB
go: 435.1 MiB
libreoffice-fresh: 417.1 MiB
stellarium: 392.7 MiB
brave-bin: 311.6 MiB
yandex-browser: 296.7 MiB
chromium: 285.8 MiB
firefox: 237.7 MiB
mariadb: 193.7 MiB
linux-firmware: 182.8 MiB
===========================================
:: Выполнение запроса в AUR...
-> Пакеты AUR, помеченные как устаревшие: lib32-gstreamer0.10
oleg@mobile:~:$
Заключение
Теперь вы, умея работать с yay
, сможете с лёгкостью генерировать и устанавливать пакеты Arch Linux из пользовательского репозитория AUR, содержащего огромное количество программ.