我无法在 R 中加载包,因为该文件libpq.5.dylib
不在/usr/lib/libpq.5.dylib
。它是在/usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib
我尝试了这一行:sudo ln -s /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib /usr/lib/libpq.5.dylib
但我得到这样的回应:ln: /usr/lib/libpq.5.dylib: Operation not permitted
我该怎么做才能获取文件/usr/lib/libpq.5.dylib
不会引起问题?这solution https://stackoverflow.com/questions/32910619/ln-usr-lib-libssl-dylib-operation-not-permitted-osx表明我可能会遇到问题,所以我不知道该怎么做。
你真的不想让它进来/usr/lib
。 Apple 宣布这是禁止的,并且在较新的 macOS 版本上它位于只读卷上。除非您愿意进入恢复模式并手动篡改卷(并且可能在未来的操作系统更新中重复此操作),否则这不是正确的方法。
相反,让我们解决核心问题:
macOS 上的动态库将其自己的安装路径嵌入到二进制文件中,链接器将其复制到链接到它们的二进制文件中。该信息可以通过以下方式更改install_name_tool
(see man install_name_tool
).
-
检查 dylib 的安装名称:
otool -l /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib | fgrep -A2 LC_ID_DYLIB
如果打印的路径已经指向 dylib 本身(或符号链接到它的路径),请使用此路径作为[new_path]
如下,并跳过步骤 2。
-
如果 dylib 的安装名称是not指向自身,运行:
sudo install_name_tool -id /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib
And use /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib
for [new_path]
below.
-
对于链接到 dylib 的二进制文件,请运行:
sudo install_name_tool -change /usr/lib/libpq.5.dylib [new_path] [path_to_binary]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)