Yay в Arch Linux

Опубликовано admin - пн, 01/02/2023 - 15:18

В 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, содержащего огромное количество программ.

Поделиться с друзьями