【问题标题】:error installing sodium package on linux EC2 - unable to load shared object在 Linux EC2 上安装钠包时出错 - 无法加载共享对象
【发布时间】:2019-10-30 11:45:55
【问题描述】:

我正在尝试在 AWS Linux (fedora) EC2 实例上安装 sodium R 包。 libsodium 库已安装并位于此处:

[ec2-user@ip-xxx]$ sudo find / -iname libsodium.*
/usr/local/lib/libsodium.a
/usr/local/lib/libsodium.la
/usr/local/lib/libsodium.so.23.3.0
/usr/local/lib/libsodium.so
/usr/local/lib/pkgconfig/libsodium.pc
...

在 R 中,我运行了以下引发错误的命令。据我从消息中可以看出,没有找到libsodium

> Sys.setenv(PKG_CONFIG_PATH= "/usr/local/lib/pkgconfig")
> install.packages("sodium")
Installing package into ‘/usr/lib64/R/library’
...

** package ‘sodium’ successfully unpacked and MD5 sums checked
Found pkg-config cflags and libs!
Using PKG_CFLAGS=-I/usr/local/include
Using PKG_LIBS=-L/usr/local/lib -lsodium
** libs
...

** testing if installed package can be loaded
Error: package or namespace load failed for ‘sodium’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/usr/lib64/R/library/sodium/libs/sodium.so':
  libsodium.so.23: cannot open shared object file: No such file or directory
...

我不熟悉linux,不知道现在该做什么。例如,我是否需要设置任何其他环境变量等?有任何想法吗? :)

【问题讨论】:

    标签: r libsodium


    【解决方案1】:

    您的 libsodium 版本似乎错误,或者安装在错误的位置。

    如果它是使用yum 安装的,您可以通过运行yum info libsodium-devel 来检查安装的版本

    根据包要求https://cran.r-project.org/web/packages/sodium/index.html

    系统要求:libsodium (>= 1.0.3)

    我认为 AWS 在其 repos 上的最新版本 libsodium-develVersion : 0.4.5

    要解决此问题,您需要 yum install libsodium-devel 来自另一个具有更高版本的存储库,例如 lux 存储库:https://pkgs.org/download/libsodium-devel

    首先将 lux repo 添加到 yum:

    sudo rpm -Uvh http://repo.iotti.biz/CentOS/6/noarch/lux-release-6-3.noarch.rpm
    sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-LUX
    

    然后,出于某种原因,我不得不编辑 .repo 文件以指向正确的位置。编辑此文件/etc/yum.repos.d/lux.repo 以包含以下内容:

    [lux]
    name=CentOS $releasever - $basearch - Lux
    baseurl=http://repo.iotti.biz/CentOS/6
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-LUX  
    

    一旦你完成了,你应该对yum install这个包很好:

    sudo yum install libsodium-devel

    那么 R install.packages("sodium") 应该会成功完成。

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2017-03-11
      • 1970-01-01
      • 2019-01-25
      • 2019-12-27
      相关资源
      最近更新 更多