刚刚尝试卸载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 客户端的一部分。现在让我们看看pacman
and是否存在依赖问题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
针对您尝试访问的程序运行。如果当您这样做时,大多数库都是未知的,则很可能您只是缺少配置或符号链接。
如果您只是缺少一两个,那就是一个更大的问题。这可能是升级问题、意外删除、损坏、恶意替换或许多其他原因之一。