AWS Linux(Fedora) EC2实例安装sodium R包失败:无法加载共享对象
解决AWS Fedora EC2实例上R包sodium加载失败的问题
你遇到的是Linux动态链接库路径的典型问题——虽然已经成功安装了libsodium库在/usr/local/lib,但系统的动态链接器默认没有将这个目录纳入搜索路径,导致R在加载sodium包时找不到libsodium.so.23文件。下面是具体的解决方案:
1. 确认问题根源
先验证动态链接器是否能找到libsodium库:
ldconfig -p | grep libsodium
如果输出里没有/usr/local/lib/libsodium.so.23的条目,说明这个目录确实不在动态链接器的搜索缓存中,这就是问题所在。
2. 临时修复(立即生效,重启后失效)
先通过环境变量临时添加路径,快速验证:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
之后启动R,尝试加载包:
library(sodium)
如果成功加载,说明我们的判断是对的,接下来可以做永久配置。
3. 永久修复(重启后依然有效)
要让系统永久识别/usr/local/lib下的动态库,需要更新动态链接器的配置:
- 创建一个新的配置文件:
sudo tee /etc/ld.so.conf.d/libsodium.conf <<EOF /usr/local/lib EOF - 更新动态链接器缓存:
sudo ldconfig - 再次验证:
现在应该能看到ldconfig -p | grep libsodium/usr/local/lib下的libsodium库条目了。
完成以上步骤后,重新启动R并安装/加载sodium包就不会再出现找不到库的错误了。
内容的提问来源于stack exchange,提问作者Mark Heckmann
相关产品推荐
相关产品推荐

