已安装,只是没有链接

aan*_*nrv 79 macos homebrew

注意:我不太擅长使用shell.

我试图在Yosemite 上安装Valgrind使用brew.

brew install --HEAD valgrind

接近尾声时,我遇到了与链接有关的错误,所以当我尝试重新安装时,我得到了:

警告:valgrind-HEAD已经安装,它只是没有链接

显然我已经安装了它.然后基于其他SO问题和答案,我试过:

brew link valgrind

这似乎解决了其他人链接已安装的软件的问题,但这给了我一个错误:

Linking /usr/local/Cellar/valgrind/HEAD... 
Error: Could not symlink lib/pkgconfig/valgrind.pc
/usr/local/lib/pkgconfig is not writable.
Run Code Online (Sandbox Code Playgroud)

我也试图更新,brew但它没有解决问题.如果它不可写,也许sudo会给我许可,但我不想在sudo不知道我在做什么的情况下使用.

发生了什么以及如何解决它?

小智 98

看起来像是一个权限问题.我会尝试这样做

chmod 755 /usr/local/lib/pkgconfig
Run Code Online (Sandbox Code Playgroud)

这应该是可用的,然后尝试

brew link valgrind
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,我会尝试检查它

brew doctor
Run Code Online (Sandbox Code Playgroud)

  • 我使用`brew doctor`,并按照说明,然后使用`chown`两次来解决问题. (5认同)
  • @yanzi1225627 为什么两次? (2认同)

Vin*_*ula 28

第一次运行

brew link <package>
Run Code Online (Sandbox Code Playgroud)

如果出错,请尝试自动诊断

brew doctor
Run Code Online (Sandbox Code Playgroud)

brew doctor 列出了可能导致安装过程中出错的问题列表.

要解决文件冲突时的问题,请运行以获取通过覆盖执行而不实际执行它们的所有操作的列表.

列出要删除的所有文件:

  brew link --overwrite --dry-run <package>
Run Code Online (Sandbox Code Playgroud)

然后执行覆盖,然后执行覆盖,假设您认为覆盖执行的操作将使您的系统处于更稳定的状态.

强制链接并覆盖所有冲突文件:

 brew link --overwrite <package>
Run Code Online (Sandbox Code Playgroud)


Har*_*hit 12

如果上述解决方案都不起作用,请尝试此操作.

sudo chown -R $USER:admin /usr/local
brew link <package-name>
Run Code Online (Sandbox Code Playgroud)