r - Rserve:ld:找不到-lssl的库
问题描述
尝试安装 Rserve 1.8.6 时出现错误。我可以从 CRAN 成功安装 1.7.3。这是在 Mac OS High Sierra 上。
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [forward] Error 1
make: *** [all] Error 2
ERROR: compilation failed for package ‘Rserve’
* removing ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rserve’
* restoring previous ‘/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rserve’
The downloaded source packages are in
‘/private/var/folders/v7/hyxrfmk94p1_03gdrm27fnxncy3vq1/T/RtmpFHKNMe/downloaded_packages’
解决方案
我正在运行 Mac OS 10.15 Catalina,我花了 2 天时间试图解决同样的问题,并在互联网上寻求帮助。我最终通过拼凑来自几个不同来源的解决方案来管理它。
我缺少的关键是 Mac OS 附带了它自己的 openssl 版本,它认为它优于你能找到的任何其他版本。这是错误的。你需要做的是去下载最新版本的openssl,安装它,然后将那个库导出到你的库路径变量。以下是我使用 openssl 1.1.1 所采取的步骤:
从源 ( https://www.openssl.org/source/ )获取最新版本的 openssl 的版本号,然后直接手动安装它应该去的地方:
cd /usr/local/src
如果您收到“没有这样的文件或目录”,请执行以下操作:
cd /usr/local && mkdir src && cd src
使用 curl(如图所示)或使用上面的源代码链接下载 openssl(确保将文件放在上一步中刚刚创建的目录中):
curl --remote-name https://www.openssl.org/source/openssl-1.1.1f.tar.gz
提取并 cd 进入:
tar -xzvf openssl-1.1.1f.tar.gz
cd openssl-1.1.1f
编译并安装(这些是 64 位 Mac OS 说明。有关 32 位和其他 OS 说明,请参阅openssl 文档):
./Configure darwin64-x86_64-cc shared enable-ec_nistp_64_gcc_128 no-ssl2 no-ssl3 no-comp --openssldir=/usr/local/ssl/macos-x86_64
make depend
sudo make install
这创建了一个新的 openssl 文件夹,因此当您导出库路径时,您必须为其提供正确的 openssl 文件夹:
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl@1.1/lib/
如果您还没有弄清楚,希望对您有所帮助,以及将来准备将计算机扔到房间另一边的任何人,就像我一样。
推荐阅读
- apache-spark - 如何在pyspark中将数据框保存为文本文件GZ格式?((但不是csv格式)
- java - Sonarlint [squid:S1186]:Spring Tool Suite 中的构造函数上的方法不应为空
- .net - c#中get前缀背后的原因
- angular - 升级到 Angular 6 后 HTTPClient 出错,api 调用重定向到 localhost:4200
- java - Hadoop 3.1 构建在“protoc --version”失败
- javascript - 在 JavaScript 中从 HTML 源中提取 JSON
- c# - do while循环中的错误
- angular - Immutable.js 在 Angular 的 *ngFor 中访问值
- django - django ApiView 登录返回 404
- javascript - TypeError: require(...) 不是一个函数 Express.js