+++ date = "2019-03-14" tags = ["arch"] title = "arch32でlibreadlineのerrorが出た場合の回避策" slug = "arch32" +++ arch32で詰みかけのerrorが出た話。 現在、32bitは公式では提供されてないので、`https://archlinux32.org/`からダウンロードして使ってるもの。pacman-mirrorとかもいつもとは違うURLだったりする。 ```bash $ pacman -Syu : GPGME エラー: 無効な暗号エンジンです $ pacman-key --refresh-keys /usr/bin/bash: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory $ pacman -S readline : GPGME エラー: 無効な暗号エンジンです $ cd /var/cache/pacman/pkg $ pacman -U readline.pkg /usr/bin/bash: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory ``` ここで、あれ?なんかやばくない?と感じ始めた。 なんでかっていうと、アップデートするにはgpg-keyの更新が必要で、gpg-keyを更新するにはアップデート(おそらくreadline)が必要みたいな感じになってるから、多分...。 問題は、pacmanに使われてるbash scriptにlibreadlineが使われてることにあるみたいで、結局、既存のlibにシンボリックリンクを貼りました。その後、キーを更新して、アップデートが無事成功。 ```bash $ ln -s /usr/lib/libreadline.so.8.0 /usr/lib/libreadline.so.7 $ pacman-key --refresh-keys $ pacman -Syu ```