此现象在我的openwrt设备上产生,镜像版本为OpenWrt 21.02.1 r16325-88151b8303 / LuCI openwrt-21.02 branch git-23.093.57360-e98243e
该问题如果产生,则会在执行任何curl指令或者调用了curl程序时产生如下报错
包括你直接执行curl命令(且不附带任何实际操作的参数)
root@MoeWrt:~# curl
Error loading shared library libwolfssl.so.5.5.3.99a5b54a: No such file or directory (needed by /usr/bin/curl)
Error relocating /usr/bin/curl: curl_easy_header: symbol not found
Error relocating /usr/bin/curl: curl_easy_nextheader: symbol not found
解决方法
执行以下命令
opkg update
opkg install libcurl
这应当能够解决符号链接未找到和libwolfssl.so库找不到的问题
值得注意的是,curl同样依赖于系统的openssl相关组件(如果缺失甚至会影响系统本身的包管理器,包括但不限于opkg和apt)
如果你发现你的包管理器无法使用https源或者curl仅在http下工作正常,请考虑修复你的系统的相关组件,这和本文的主要解决的问题无关