我在尝试运行 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
运行不会出现任何问题。