2015-07-05 80 views
5

我尝试使用自制安装灵药,我得到了以下错误BREW链接错误的libpng和的libtiff

==> 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 

我不知道什么是错。任何帮助

+2

堆栈溢出有类似的问题,但有不同的包。你有尝试过吗?有些人建议运行“brew link -f libpng”,但你应该调查以确保它不会搞乱你的系统。 –

+0

@JoséValim我已经尝试了其中的几种解决方案,包括上面提到的解决方案。到目前为止没有运气。 –

+0

如何'做brew'卸载libpng'然后'brew install libpng'。对'libtiff'也做同样的事情。你尝试过吗? – Gjaldon

回答

0

看起来好像在你的/usr/local/lib文件夹中,现在有libpng符号,因此brew不想覆盖它们。它是elixir的依赖关系,所以它暂停设置。

如果您正在使用的MacPorts或自制或手动安装任何东西,然后依赖可能会发生冲突。以互相排斥的方式使用其中之一更好。

这是一个可行的选择使用自制的整体,因为易用性,如果你不打算从源代码编译软件包。

Homebrew并不像您期望的那样工作。默认情况下,它有一个基本目录,用于安装名为Cellar的工件keg,虽然它是可配置的。通常情况下,你会二进制库复制到/usr/local/bin,以/usr/local/lib,头向/usr/local/include等等......然而,他们自制软件安装到自己的目录,并创建对这些目录的符号链接,而不是为了使它们在功能同样的方式。

您可能会发现brew doctor命令错误(或incompatibities)。它会告诉你符号/文件冲突。您可以手动将它们从文件系统中删除,然后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依赖于它的任何东西都会失败,因为即将到来的头文件会与预安装的文件冲突。