Brew医生显示警告如何解决

时间:2015-04-08 11:12:35

标签: ruby-on-rails homebrew osx-yosemite

我在运行时是OSX的新手

brew doctor

显示以下警告。

Warning: You have an outdated version of /usr/bin/install_name_tool installed. 
This will cause binary package installations to fail.
This can happen if you install osx-gcc-installer or RailsInstaller.
To restore it, you must reinstall OS X or restore the binary from
the OS packages.


 Warning: Some keg-only formula are linked into the Cellar.
Linking a keg-only formula, such as gettext, into the cellar with
`brew link <formula>` will cause other formulae to detect them during
the `./configure` step. This may cause problems when compiling those
other formulae.

Binaries provided by keg-only formulae may override system binaries
with other strange results.

You may wish to `brew unlink` these brews:

openssl

无论如何都可以在不重新安装操作系统的情况下解决错误吗?

我需要安装ruby rails,它在运行时显示一些错误

rails server 

命令。我认为问题是由于上述警告造成的。

提前致谢

2 个答案:

答案 0 :(得分:1)

@Yahya,我遇到了同样的问题并在阅读完这个帖子后设法解决了这个问题:https://github.com/Homebrew/homebrew/issues/29989

我已经尝试了两种建议的解决方案(重新安装essentials包而不是仅复制install_name_tool二进制文件),两者都同样正常(我已在下面给出了每个示例)

因此,对于 Yosemite 系统,我建议快速克隆和复制&#39;方法,对于 Mavericks - 更慢的包更换。

Yosemite OS

首先检查当前版本的install_name_tool

param4

现在从Github克隆Yosemite兼容二进制文件并替换/ usr / bin文件夹中的二进制文件:

$ otool -L /usr/bin/install_name_tool
/usr/bin/install_name_tool
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.3)

最后检查版本是否更新以及是否修复了自制软件:

$ git clone https://github.com/cinic/install-name-tool
Cloning into 'install-name-tool'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Unpacking objects: 100% (3/3), done.
Checking connectivity... done.
$ sudo mv /usr/bin/install_name_tool /usr/bin/install_name_tool.orig
$ sudo cp install-name-tool/install_name_tool /usr/bin/

最后

$ otool -L /usr/bin/install_name_tool 
/usr/bin/install_name_tool:
    /usr/lib/libxcselect.dylib (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
$ brew doctor
Your system is ready to brew.

小牛

从App Store下载 Mavericks 安装程序

$ rm -fr install-name-tool/
$ sudo rm /usr/bin/install_name_tool.orig 

安装软件包后,检查$ open /Applications/Install\ OS\ X\ Mavericks.app/Contents/SharedSupport/InstallESD.dmg $ open /Volumes/OS\ X\ Install\ ESD/Packages/Essentials.pkg 输出。

答案 1 :(得分:0)

如果您使用的是Homebrew,它通常会查找您拥有的项目并将其链接起来。它看起来像是用openssl完成的。您有三种选择:

卸载并重新安装openssl

brew uninstall openssl
brew install openssl

尝试升级openssl

brew update openssl

或者您可以尝试取消链接openssl(但是,如果您知道openssl的位置,则只执行此操作)

brew unlink openssl