brew 链接错误 libpng 和 libtiff

问题描述 投票:0回答:2

我尝试使用自制软件安装 Elixir,但出现以下错误

==> Pouring libtiff-4.0.3.yosemite.bottle.tar.gz
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local

文件存在 - /usr/local/lib 错误:文件存在 - /usr/local/lib

我跑了

brew doctor
,我看到了这个

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that  depend on
those kegs to fail to run properly once built. Run `brew link` on these:

libpng
libtiff

所以我跑了

brew link libpng
,我得到了这个

Linking /usr/local/Cellar/libpng/1.6.17... Error: File exists - /usr/local/lib

我不知道出了什么问题。有什么帮助吗

macos homebrew elixir
2个回答
0
投票

似乎在您的

/usr/local/lib
文件夹中,存在现有的
libpng
符号,因此
brew
不想覆盖它们。它是
elixir
的依赖项,因此它会停止设置。

如果您使用 MacPorts 或 Homebrew 或手动安装任何内容,则依赖关系可能会发生冲突。最好以互斥的方式使用其中之一。

如果您不打算从源代码构建软件包,那么总体上使用 Homebrew 是一个可行的选择,因为它易于使用。

Homebrew 无法按照您的预期工作。默认情况下,它有一个基本目录来安装名为

keg
Cellar
的工件,尽管它是可配置的。通常,您会将二进制文件复制到
/usr/local/bin
,将库复制到
/usr/local/lib
,将标头复制到
/usr/local/include
等等...但是,Homebrew 将它们安装到自己的目录中,并在这些目录上创建符号链接,在为了使它们以相同的方式发挥作用。

您可能会发现

brew doctor
命令存在错误(或不兼容)。它会告诉您冲突的符号/文件。您可以手动从文件系统中删除它们,然后
brew
将创建指向其基目录的符号链接(根据您的
brew link $PACKAGE_NAME
命令)。

实验

当我突然决定在我的计算机中做一个简单的

brew doctor
时,它确实输出了一些意想不到的头文件,如下所示:

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

但是,它也指出,如果一切正常,这些都没有意义:

Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

输出的前几行:

Unexpected header files:
  /usr/local/include/node/android-ifaddrs.h
  /usr/local/include/node/ares.h
  ...

这不是我的个人电脑,但似乎有人手动安装了

node
到这台计算机(实际上是用户)。在这种情况下,尝试通过
brew
安装它或任何依赖于它的东西都会失败,因为即将到来的头文件将与预安装的头文件冲突。


0
投票

我很幸运地连续执行了以下命令:

brew reinstall libtiff
brew reinstall gd

© www.soinside.com 2019 - 2024. All rights reserved.