我无法在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建议我可能会面临问题,所以我不知道该怎么做。
发布于 2020-10-08 23:30:56
你真的不希望它出现在/usr/lib中。苹果宣布这是禁止使用的,而在较新的macOS版本上,它只能使用只读版本。除非您愿意进入恢复模式并手动篡改卷(并可能在将来的操作系统更新中重复此操作),否则这不是一条路。
相反,让我们讨论一下核心问题:
macOS上的动态库将自己的安装路径嵌入到二进制文件中,链接器将其复制到针对二进制文件的二进制文件中。可以用install_name_tool更改此信息(请参阅man install_name_tool)。
otool /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib -l fgrep -A2 LC_ID_DYLIB
如果打印的路径已经指向dylib本身(或与其有符号链接的路径),请使用下面的[new_path]路径,并跳过步骤2.。
如果dylib的安装名称没有指向自身,则运行
数独/usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib /usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib install_name_tool -id
并将/usr/local/Cellar/libpq/13.0/lib/libpq.5.dylib用于下面的[new_path] .
对于链接到dylib的二进制文件,运行
sudo install_name_tool -change /usr/lib/libpq.5.-change new_path
发布于 2022-06-28 14:16:03
我也遇到了同样的问题:安装了RPostgres,但是库无法加载,同样的错误消息。由于我已经在我的机器上安装了Postgres,所以我认为这个问题已经解决了,因此我在本地没有这样的消息;但是下面是我如何在我的dockerfile中解决这个问题的方法,在一个与安装R无关的机器上100%地验证了这个问题:
RUN apt-get update && apt-get install libpq5 -y因此,在您的终端上执行apt-get update && apt-get install libpq5 -y应该可以做到这一点。轻巧高效。
https://stackoverflow.com/questions/64256675
复制相似问题