libreadline.so.6:共有オブジェクトファイルを開くことができません。 libreadline-7とdevがあります。

libreadline.so.6:共有オブジェクトファイルを開くことができません。 libreadline-7とdevがあります。

一部のネットワークシミュレーションに対してvtyshを実行しようとすると、次のエラーが発生します。

vtysh: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory

現在、libreadline-devとlibreadline-7をインストールし、/lib/x86_64-linux-gnu/libreadline.so.6にlibreadline.so.7へのシンボリックリンクを作成しましたが、役に立ちません。私はそれが別の方法を探していると仮定していますが、そのような問題を解決する方法がわかりません。


以下のアドバイスはそれほど幸運ではありません。以下の提案に従ってソースからreadline6.3をコンパイルした後、出力は次のようldconfig -v | grep readlineになります。

/sbin/ldconfig.real: Can't stat /usr/local/lib/x86_64-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
    libreadline.so.6 -> libreadline.so.6.3
    libreadline.so.7 -> libreadline.so.7.0
/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.27.so is the dynamic linker, ignoring

    libguilereadline-v-18.so.18 -> libguilereadline-v-18.so.18.0.0
/home/gdc/Desktop/readline-6.3:
/sbin/ldconfig.real: /lib32/ld-2.27.so is the dynamic linker, ignoring

答え1

シンボリックリンクの作成はうまくいかないので、唯一の他のオプションは、ソースからコードをコンパイルして環境に追加することです。ここからソースコードを得ることができますreadline-6.3

http://ftp.gnu.org/gnu/readline/

コンパイル後、/etc/ld.so.conf.d/x86_64_readline-gnu.conf ファイルを生成し、/path/to/readline/libコンパイル場所に合わせて行を入力します。次に、次のコマンドを実行します。

ldconfig -v | grep readline

libreadline.so.6あなたの環境でこれを見ることができ、vtysh問題なく実行されます。

関連情報