Arch Linux: фікс помилки “yay: error while loading shared libraries: libalpm.so.13”

Автор |  17/03/2024
 

Після оновлення Arch Linux, yay почав видавати помилку:

yay: error while loading shared libraries: libalpm.so.13: cannot open shared object file: No such file or directory

Спершу, ддавайте знайдемо файл бібліотеки libalpm:

$ sudo find / -type f -name "*.so*" | grep libalpm
/usr/lib/libalpm.so.14.0.0

Окей – він є, але версії 14 –  libalpm.so.14, а Yay хоче стару, 13.

Перший варіант пофіксити – це тупо зробити symlink /usr/lib/libalpm.so.14.0.0 на файл /usr/lib/libalpm.so.13:

$ sudo ln -s /usr/lib/libalpm.so.14.0.0 /usr/lib/libalpm.so.13

Але хоча це робоче рішення, але краще обходитись без таких “грязних хаків”.

Натомість ми можемо просто перезібрати та перевстановити Yay – тоді він буде використовувати нову версію libalpm.

Встановлюємо пакети Git та base-devel:

$ sudo pacman -S git base-devel

Клонуємо репозиторій Yay, збираємо та встановлюємо його за допомогою makepkg, яка використає файл PKGBUILD з “інструкціями” по білду та інсталяції пакета.

А вже у PKGBUILD ми маємо флаг “GOFLAGS="${GOFLAGS} $(pacman -T 'libalpm.so=14-64')".

Отже. клонуємо, та запускаємо makepkg з опціями -s (--syncdeps – встановити залежності) та -i (--install – встановити зібраний пакет з pacman):

$ git clone https://aur.archlinux.org/yay.git
$ cd yay/
$ makepkg -si

І Yay тепер працює:

$ yay --help
Usage:
    yay
    yay <operation> [...]
    yay <package(s)>
...

Готово.