1
0
hugo/content/blog/2019-03-14-arch32.md
2024-04-23 22:21:26 +09:00

39 lines
1.5 KiB
Markdown

+++
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
```