brew link php71: 无法建立符号链接 sbin/php-fpm

29
我正在尝试安装Laravel Valet,它需要php 7.1,但当我运行brew install php71时,我收到以下错误:

==> Pouring php71-7.1.10_21.high_sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink sbin/php-fpm
/usr/local/sbin is not writable.

运行brew link php71时,我遇到了相同的错误。如果我运行php -v,我实际上可以看到我当前正在运行PHP 7.1.7。

但是当我运行valet install时,我会得到:

  [DomainException]
  Unable to determine linked PHP.

我在 /usr/local 中甚至没有 sbin 目录。

您有任何建议吗?


只是猜测,但您可能需要暂时禁用“系统完整性保护”……使用 csrutil 或类似工具。 - Mark Setchell
那并没有使得 sbin 目录出现。 - AlxVallejo
2
你应该能够自己创建并尝试使用 mkdir /usr/local/sbin - Mark Setchell
1
好的,它起作用了!我不确定我对此感觉良好,但仍然安装了。 - AlxVallejo
2个回答

121

我通过先创建 sbin 目录来解决了这个问题。

sudo mkdir /usr/local/sbin

如果你像我一样使用 macOS High Sierra 10+,那么你需要运行:

sudo chown -R $(whoami) $(brew --prefix)/sbin

完成之后

brew link php

7
当您说“local dir”时,您是否指的是/usr/local/sbin目录? - Andy Ibanez
1
这是到目前为止最好的解释之一,谢谢。@AndyIbanez确实是这样。 - Yajairo87
1
sudo mkdir /usr/local/sbin after sudo chown -R `whoami`:admin /usr/local/sbin and just brew link php - Thiago Valente
这个解决方案对我很有用。我在将brew链接到php时遇到了问题。错误是permission denied @ apply2files。 - Fatimah Mohmmed

0
安装 Laravel Valet 时,我遇到了与 sbin 不可写的类似问题。我不得不创建该目录,然后使用 this page 中包含的解决方案。这最终允许我以正确的权限运行先前安装的 PHP 7.1 版本的 brew link 命令。

3
作为日后参考,请注意,通常最佳实践是在您的答案中包含链接的相关部分,以防页面或问题/答案被删除。这样,该问题和您的回答将保持完整和有效。 - Michael
我不明白这个。 - The Onin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接