【问题标题】:brew link error libpng and libtiffbrew链接错误libpng和libtiff
【发布时间】:2015-09-22 11:31:26
【问题描述】:

我尝试使用自制软件安装 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

我不知道出了什么问题。任何帮助

【问题讨论】:

  • Stack Overflow 上也有类似的问题,但使用的包不同。你试过了吗?有些人建议运行“brew link -f libpng”,但您应该进行调查以确保它不会弄乱您的系统。
  • @JoséValim 我已经尝试了几种解决方案,包括您上面提到的解决方案。到目前为止没有运气。
  • 怎么样brew uninstall libpng然后brew install libpng。对libtiff 也做同样的事情。你试过吗?
  • @WasswaSamuel 如果您在自制软件中没有很多东西,请考虑对其进行核对并开始一个新的。或者,如果你只是想玩 Elixir,试试 kiex (github.com/taylor/kiex) 或使用预编译包 (elixir-lang.org/install.html#precompiled-package)。你可以直接从 bin 中解压并运行 Elixir。如果你愿意,你也可以将 bin 添加到你的 PATH 中(这实际上就是我运行 elixir 的方式:D)。
  • 这可能不是 Elixir brew 的问题;您可能想尝试不同的 brew 以查看是否遇到相同的问题。

标签: macos homebrew elixir


【解决方案1】:

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

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

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

Homebrew 无法按您的预期工作。默认情况下,它有一个基本目录来安装名为Cellarkegs 的工件,尽管它是可配置的。通常,您会将二进制文件复制到/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 安装它或任何依赖于它的东西都会失败,因为即将到来的头文件会与预安装的头文件冲突。

【讨论】:

    猜你喜欢
    • 2012-08-30
    • 2018-01-06
    • 2012-03-10
    • 2011-01-24
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    相关资源
    最近更新 更多