Debianをbookwormにしたらまたshell-gptが動かなくなったので調べた

エラー内容

1
2
3
4
5
6
7
8
9
$ sgpt "hello"
Traceback (most recent call last):
File "/home/nobiki/.anyenv/envs/pyenv/versions/3.10.11/bin/sgpt", line 5, in <module>
from sgpt import cli
File "/home/nobiki/.anyenv/envs/pyenv/versions/3.10.11/lib/python3.10/site-packages/sgpt/__init__.py", line 1, in <module>
from .app import main as main
File "/home/nobiki/.anyenv/envs/pyenv/versions/3.10.11/lib/python3.10/site-packages/sgpt/app.py", line 2, in <module>
import readline # noqa: F401
ImportError: libreadline.so.7: cannot open shared object file: No such file or directory

調べた

libreadline.so.7がない(Debian bookworm)

1
2
3
$ ldconfig -p | grep readline
libreadline.so.8 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.8
libreadline.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so

libreadline7のインストール

debパッケージをここから取得

1
2
3
$ wget http://ftp.jp.debian.org/debian/pool/main/r/readline/libreadline7_7.0-5_amd64.deb

$ sudo apt install ./libreadline7_7.0-5_amd64.deb

インストール後、libreadline.so.7が表示されてたらOK

1
2
3
4
$ ldconfig -p | grep readline
libreadline.so.8 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.8
libreadline.so.7 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.7
libreadline.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so