4

所以我一直在使用自制软件在我的 Mac 上安装各种包/库/程序。我一直遇到一个问题,自制软件告诉我我的酒窖中有未链接的小桶。

例如,在运行时,brew install phantomjs我收到以下消息:

Warning: Could not link phantomjs. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link phantomjs'

Possible conflicting files are:
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs

我尝试brew link phantomjs按照建议运行,并遇到了类似的问题:

Error: Could not symlink file: /usr/local/Cellar/phantomjs/1.9.2/bin/phantomjs
Target /usr/local/bin/phantomjs already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

该命令brew link --overwrite --dry-run phantomjs给出以下消息:

Would remove:
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs

我可能会继续覆盖,但是每次我尝试使用自制软件安装某些东西时似乎都会发生这种情况。为什么?为什么自制软件没有按预期工作?

谢谢。

4

2 回答 2

1

据我所知,看起来你以前做过:

% sudo npm install -g phantomjs

在这种情况下,您应该执行以下操作:

% sudo npm uninstall -g phantomjs
% brew link --overwrite phantomjs
于 2013-11-19T03:39:59.977 回答
0

我以为我会对此有所了解。我今天遇到了类似的问题,我想可能和这个有关:

https://github.com/Homebrew/homebrew/issues/22408

长话短说,我认为这与 npm 管理包的方式与 brew 的方式有关。(我假设你安装了默认的节点,这会给你 npm)。

在某些时候,您可能使用 npm 安装了一些软件包。也许咕噜声,业力等。默认情况下,这些以/usr/local/lib/node_modules.

也许其中一个包或其依赖项(或子依赖项)依赖于 phantomjs (我认为 Karma 可能使用 phantomjs?)无论如何,如果现在您正在尝试 brew install phantomjs ,它正在尝试对其进行符号链接,那可能与 npm 为您创建的现有符号链接冲突..

我认为您可以更改该软件包的符号链接路径,以便 brew 永久指向 node_modules 文件夹中已安装的软件包。抱歉没有更具体,我只是自己解决这个问题。

于 2014-04-15T21:22:38.093 回答