已安装,只是未链接

Installed, just not linked

注:我不太会用shell。

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

brew install --HEAD valgrind

最后,我遇到了一个与链接有关的错误,所以当我尝试重新安装时,我得到了:

Warning: valgrind-HEAD already installed, it's just not linked

显然我已经安装了它。然后根据其他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.

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

这是怎么回事,我该如何解决?

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

chmod 755 /usr/local/lib/pkgconfig

这应该可以使用,然后尝试

brew link valgrind

如果这不起作用,我会尝试对其进行检查

brew doctor

第一个运行

brew link <package>

如果报错,尝试自动诊断

brew doctor

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

要解决文件冲突问题, 运行 获取所有 将执行 通过覆盖而不实际执行的操作的列表。

列出所有将被删除的文件:

  brew link --overwrite --dry-run <package>

后跟此 运行 将执行覆盖,假设您认为覆盖执行的操作将使您的系统进入更 稳定状态 .

要强制 link 并覆盖所有冲突文件:

 brew link --overwrite <package>

如果上述解决方案 none 有效,请尝试此方法。

sudo chown -R $USER:admin /usr/local
brew link <package-name>

这是我尝试过的并且有效的方法:

$ brew link --overwrite sdl
Linking /usr/local/Cellar/sdl/1.2.15...
Error: Could not symlink lib/pkgconfig/sdl.pc
/usr/local/lib/pkgconfig is not writable.

寻找 pkgconfig:(在 chmod 750 之后)

drwxr-xr-x   4 root           wheel   136B Mar 30  2013 pkgconfig

我试过 chown 如下:

$ sudo chown -R  avkashchauhan:admin /usr/local/lib/pkgconfig

它应该如下所示:

drwxr-xr-x   4 avkashchauhan  admin   136B Mar 30  2013 pkgconfig

我试过之后:

$ brew link sdl                                                                                                                                                                                                                    
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created

就我而言,brew doctor 做对了。在某些时候 /usr/local/lib/pkgconfig 被设置为 root 而不是我的帐户。规定的补救措施有效 -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig

类型

link valgrind

会报错无法链接,因为某某目录不可写。太棒了,我们现在让它可写了。输入

sudo chmod a+w the/directory/shown/as/error

如果目录不可写,您将无法更改其权限并使其可写。 Sudo 将使此操作成为可能。 chmod 将更改模式并使所有 (a) 用户能够写入 (w) 它。

接下来系统将提示您输入系统密码。在此之后,再次输入

link valgrind

这次会成功的。

我遇到了类似的问题,

$ brew 安装 sqlite 正在更新自制软件... ==> 自动更新 Homebrew! 更新了 1 个点击 (homebrew/core)。 公式没有变化。

警告:sqlite-3.17.0 已经安装,只是没有linked。

我试过了link,

$ brew link sqlite 警告:sqlite 是 keg-only,必须 linked with --force 请注意,这样做会干扰构建软件。

那就强行做,

$ brew link --force sqlite 正在链接 /usr/local/Cellar/sqlite/3.17.0... 已创建 8 个符号link

我有同样的问题,我用下一个解决方案解决了: 运行 brew doctor 从终端检查所有错误

然后 运行 下一个命令:

sudo chown -R $USER:admin /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share

在 运行 之后:

brew link <package_name>

我有同样的权限问题,但是在我授予权限后,权限仍然错误。首先我要这样做:

brew unlink valgrind

然后,

brew link valgrind

希望对您有所帮助。

brew install cocoapods --build-from-source
brew link --overwrite cocoapods

升级到 MAC 后对我有用的唯一命令 OS Mojave 10.14.6

我遇到了类似的问题。我需要 brew link carthage。 但是 none 的答案对我有用。

我还看到了我尝试过的任何命令的下一个错误:

Error: Could not symlink .
/usr/local/opt is not writable

只有一个解决方案有帮助:

  1. 打开Finder;
  2. Command + Shift + G;
  3. 通过/usr/local路径;
  4. 手动创建 opt 文件夹(这是我的错误消息中的文件夹名称,但在您的情况下可能有所不同,例如原始问题中的 lib/pkgconfig,因此请检查您的Terminal);
  5. 再次运行你的命令。