![符号链接可执行文件在 OS X 上不起作用](https://linux22.com/image/1539326/%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E5%9C%A8%20OS%20X%20%E4%B8%8A%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试为 Mathematica ( )math
创建符号链接。可执行文件可以运行,即使我通过 Finder 找到符号链接并单击它也可以运行。但是当我从命令行调用时,我得到了/usr/local/bin
/Applications/Mathematica.app/Contents/MacOS/WolframKernel
math
$ math
dlopen(/SystemFiles, 1): image not found
我正在运行 OSX El Capitan 10.11.6。
这是被 dylib 包围的符号链接可执行文件不起作用,但那里给出的答案(创建别名)对我来说不起作用。我绝对需要另一个程序(SageMath)才能调用math
,而这个程序不会读取我的别名定义。
答案1
将答案从评论移至真实答案。
有几个解决方案似乎可行:
- 在 /Applications/Mathematica.app/Contents/MacOS/ 文件夹中,创建一个类似的符号链接
ln -s WolframKernel math
,然后将该 /Applications/Mathematica.app/Contents/MacOS/ 添加到 shell 中的搜索路径中。 - 或者,编写一个名为“math”的小型 shell 脚本,并将其放在 PATH 上的某个位置(例如 /usr/local/bin,尽管我更喜欢将“scripts”文件夹与二进制文件分开)。shell 脚本应该非常简单,基本上包含 2 个命令:
cd /Applications/Mathematica.app/Contents/MacOS/
然后只需WolframKernel
。您可能需要将参数从 shell 传递到 shell 脚本中,这并不难,但语法将取决于脚本中使用的 shell(而不是调用脚本的 shell)。
从评论来看,似乎 #1 应该可行,而且它是最简单的。但是,请注意 Mathematica 的更新可能会删除该符号链接,因此 #2 可能是一个更稳定的解决方案。