Каждый пользователь Arch Linux сталкивался с ситуацией, когда с помощью сценариев сборки из AUR нужно собрать несколько «тяжелых» программ за раз, например archtorify-git и linux-zen. С помощью AUR-хелпера (в нашем случае) yay запускается процесс сборки в терминале. Так как запуск yay от пользователя root или с помощью команды sudo
— большая угроза безопасности, yay запускают от имени обычного пользователя, и в конце процесса сборки он запрашивает root доступ самостоятельно перед установкой собранного пакета в систему. И запрашивать пароль root’a у пользователя yay пришлось бы перед каждой установкой пакета в систему. Но у команды sudo
есть таймаут, и если команда была запрошена повторно недавно и таймаут не прошел — операция выполняется с root доступом без запроса пароля, что сделано для удобства пользователя. Но что будет, если yay собирает какой-нибудь «тяжёлый» пакет, время на компиляцию которого привышает таймаут команды sudo
? А что, если таких пакетов подряд штук 15? Правильно, пользователю 15 раз придётся вводить пароль root перед каждой установкой пакета в систему. До недавнего времени это меня очень бесило, т.к. AUR-пакетов у меня в системе не так мало, обновляя их yay постоянно долбил запросом пароля для sudo
, и в один момент чаша моего терпения переполнилась. Пришлось лезть к гуглу с вопросом, который ещё и сформулировать попробуй. Но, как оказалось, решение нашлось быстро и повторить самостоятельно сможет даже новичок в Linux.
Задача имеет несколько вариантов решения: сиюминутного, но не удобного и требующего создать и поправить один конфигурационный файл, но забыть далее о проблеме навсегда.
Вариант 1: дополнительная опция в строке команды yay
Yay имеет полезную опцию --sudoloop
которая заставляет yay дёргать команду sudo
с такой частотой, чтобы не успевал выходить её таймаут. Добавляется в любое место команды так же, как например --noconfirm
:
yay -Sa --sudoloop linux-zen
Вариант 2: добавление опции sudoloop в конфиг yay
Этот вариант лично для меня предпочтительнее. Вместо того, чтобы каждый раз добавлять --sudoloop
к командам yay, лушче один раз включить эту опцию в конфиге и забыть о проблеме.
Создаём конфиг yay:
yay --save
Открываем для редактирования созданный конфигурационный файл:
nano ~/.config/yay/config.json
Находим строчку "sudoloop": false,
и меняем false
на true
.
Сохраняем изменения комбинацией клавиш [CTRL+O] -> [ENTER], и закрываем файл комбинацией [CTRL+X].
Вот и всё, теперь yay будет запрашивать пароль root только 1 раз в начале своей работы независимо от того, каково будет время между установками собираемых пакетов.