我在尝试安装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’
这对我(MacOS)有效:
终端内:
brew install openssl
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
我运行的是Mac OS 10.15 Catalina,我花了两天时间试图解决同样的问题,在互联网上搜索帮助。我最终通过拼凑几个不同来源的解决方案来解决这个问题。
我错过的关键是Mac OS附带了自己版本的openssl,它认为它比你能找到的任何其他版本都要好。这是错误的。您需要做的是下载最新版本的openssl,安装它,然后将该库导出到库路径变量中。以下是我使用openssl 1.1.1所采取的步骤:
从源代码获取最新版本的openssl的版本号(https://www.openssl.org/source/)然后直接手动安装到它应该去的地方:
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
提取和光盘:
tar -xzvf openssl-1.1.1f.tar.gz
cd openssl-1.1.1f
编译和安装(这些是64位Mac操作系统说明。有关32位和其他操作系统说明,请参阅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/
如果你还没有弄清楚,希望这能帮助你,以及未来任何像我一样准备把电脑扔到房间另一边的人。