我正在尝试创建一个指向/ usr / lib的符号链接,但我似乎没有权限,包含在root中。系统返回不允许操作。
Yosemite我工作得很好,但随着El Capitan的破产:/
任何人都知道我能做什么?
答案 0 :(得分:8)
我在Sublime文本3中使用链接的subl命令时遇到了一些问题。我相信这是你遇到的同一个问题。
显然,usr / local对它没有相同的控件。而不是
ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" ~/bin/subl
按照Sublime docs的建议,
更像是:
ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" usr/local/bin/subl
答案 1 :(得分:0)
好的,我在恢复模式下使用此命令解决了它:
csrutil disable
Apple创造了一个名为"限制"的新旗帜。这限制了对在此模式下执行的文件和文件夹的访问。然后,我复制文件并再次创建符号链接,它可以工作。
sudo cp /Library/PostgreSQL/9.2/lib/libssl.1.0.0.dylib /usr/lib
sudo cp /Library/PostgreSQL/9.2/lib/libcrypto.1.0.0.dylib /usr/lib
sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib
sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib
答案 2 :(得分:0)
我建议不要因安全原因以及安全禁用过程(rootless mode and csrutil disable)的复杂性和敏感性而混淆系统目录。
如果你对终端/ shell程序使用的开发库有问题(rails,django,python,ruby,php,......) - 我建议你选择以下方法:
例如在https://stackoverflow.com/a/33034764/565525上检查python-> postgres-driver-> openssl / libssl.dylib) - 问题是Incompatible library version: _psycopg.so requires version 1.0.0 or later ...
。
答案 3 :(得分:0)
您实际需要做的是重定向到原始二进制文件,而不更改/usr/lib/
的内容。运行csrutil disable
是非常不良和危险的行为,出于某种原因被称为“无根”。
如果出现类似以下错误:
dlopen(/Users/{your_username}/Library/R/4.0/library/sf/libs/sf.so, 6):
Library not loaded: /usr/lib/libpq.5.dylib
然后解决方案是:
在您的系统上查找libpq.5.dylib
,因为它肯定在某处:
~ % sudo find / -name libpq.5.dylib
# /usr/local/opt/libpq/lib/libpq.5.dylib
使用该文件通过install_name_tool
进行重定向:
sudo install_name_tool -change /usr/lib/libpq.5.dylib /usr/local/opt/libpq/lib/libpq.5.dylib /Users/{your_username}/Library/R/4.0/library/sf/libs/sf.so