如何修复缺失的库?

如何修复缺失的库?

刚刚尝试卸载bitcoind并安装bitcoin-qt,但现在它说

加载共享库时出错:libminiupnpc.so.16 无法打开共享对象文件:没有这样的文件或目录

pacman -Fs libminiupnpc.so.16什么也不返回

知道如何修复吗?

答案1

您确定您的系统是最新的吗?看来确实是缺乏啊pacman -Syu。接下来是题外话,如何得出这个结论:

假设已bitcoin-qt安装并且系统是最新的:

pacman -Syu
pacman -S bitcoin-qt

(一定要按这个顺序)

我们可以从它链接的位置检查libminiupnpc.so.16

$ strace bitcoin-qt 2>&1 | grep miniupnpc
open("/usr/lib/libminiupnpc.so.16", O_RDONLY|O_CLOEXEC) = 3

看起来很有希望,现在我们检查该文件:

# pacman -Qo /usr/lib/libminiupnpc.so.16
/usr/lib/libminiupnpc.so.16 is owned by miniupnpc 2.0-1

很好,这是 UPnP 客户端的一部分。现在让我们看看pacmanand是否存在依赖问题bitcoin-qt

# pacman -Qi bitcoin-qt
Name            : bitcoin-qt
Version         : 0.12.1-2
Description     : Bitcoin is a peer-to-peer network based digital currency - Qt
Architecture    : x86_64
URL             : http://www.bitcoin.org/
Licenses        : MIT
Groups          : None
Provides        : None
Depends On      : boost-libs  desktop-file-utils  libevent  qt5-base  miniupnpc  qrencode  protobuf
Optional Deps   : None
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 9.17 MiB
Packager        : Timothy Redaelli <EMAIL>
Build Date      : Thu 30 Jun 2016 14:49:30 BST
Install Date    : Sat 06 Aug 2016 21:02:27 BST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

不是真的,bitcoin-qt是依赖miniupnpc好吧。因此,除非您弄乱文件本身(或pacman -S在不执行的情况下执行pacman -Syu),否则您永远不应该达到机器当前所处的状态。

对于手头的问题,您应该重新安装这两个软件包(pacman将愉快地重新安装它们),方法是:

pacman -Syu  # always! always do this!
pacman -S community/miniupnpc
pacman -S community/bitcoin-qt

图书馆应该就位。

答案2

对于可能遇到类似问题的其他人来说,如果您也丢失了库文件的符号链接,则可能会显示该消息。或者,如果ld.so( .conf.d) 由于配置文件丢失或无法访问而不知道您的库在哪里。

当您收到该消息时,最好的第一件事就是ldd针对您尝试访问的程序运行。如果当您这样做时,大多数库都是未知的,则很可能您只是缺少配置或符号链接。

如果您只是缺少一两个,那就是一个更大的问题。这可能是升级问题、意外删除、损坏、恶意替换或许多其他原因之一。

相关内容