【问题标题】:Homebrew - bad interpreter: No such file or directoryHomebrew - 错误的解释器:没有这样的文件或目录
【发布时间】:2012-03-07 00:44:42
【问题描述】:

像个白痴一样,我设法删除了我的系统 ruby​​ 安装。

我已经重新安装了 xcode,也安装了 RVM

这样做:

$ which ruby

返回:

/Users/alex/.rvm/bin/ruby

但是,Homebrew 似乎仍然被破坏:

$ brew  
-bash: /usr/local/bin/brew: /usr/bin/ruby: bad interpreter: No such file or directory

【问题讨论】:

  • 你能标记出有效的答案吗?
  • 通过重新安装另一个 Ruby gem 修复了一个类似的问题:sudo gem install jazzy -n /usr/local/bin
  • 这与 Ruby gem 无关
  • 那么解决方案是什么?

标签: ruby macos homebrew


【解决方案1】:

OS X 上的系统 ruby​​ 符号链接到 Ruby.framework。由于您重新安装了Xcode,应该已经安装了它,但是您需要恢复符号链接。

首先,检查该文件是否存在且有效。

$ /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]

如果该命令有效,您应该能够再次设置符号链接

cd /usr/bin
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/erb /usr/bin/erb
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/gem /usr/bin/gem
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/irb /usr/bin/irb
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/rake /usr/bin/rake
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/rdoc /usr/bin/rdoc
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ri /usr/bin/ri
sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/testrb /usr/bin/testrb

这应该可以帮助您入门,希望我没有忘记任何需要链接的二进制文件。这里还有其他重新安装 ruby​​ 的建议:https://superuser.com/questions/171433/is-it-possible-to-reinstall-fix-mac-os-xs-system-ruby-without-doing-a-complete

要点中的另一种方法:https://gist.github.com/1418384

【讨论】:

  • 不工作.bogon:bin apple$ sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/rdoc /usr/bin/ rdoc ln: /usr/bin/rdoc: 文件存在 bogon:bin apple$ sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ri /usr/bin /ri ln: /usr/bin/ri: 文件存在 bogon:bin apple$ sudo ln -s ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/testrb /usr/ bin/testrb ln: /usr/bin/testrb: 文件存在
  • 你忘记了 else 块吗? “如果该命令有效”。如果指定路径上不存在 ruby​​ 怎么办?
【解决方案2】:

brew 被硬编码为使用系统 ruby​​。您可以尝试将brew 的shebang(第一行)更改为/usr/bin/env ruby,但不能保证它可以与系统Ruby 之外的任何东西一起使用(我不确定它是否与Ruby 1.9 完全兼容)。

或者您可以重新安装系统 Ruby,这可能是通过重新安装 OS X 来实现的。

【讨论】:

    【解决方案3】:

    如果您不想重新安装系统 ruby​​,以下应该可以解决问题。

    重要提示:MY_USER_NAME 替换为您的主文件夹的名称,这是您在 OS X 中的用户的“短名称”。

    sudo ln -s /Users/MY_USER_NAME/.rvm/bin/ruby /usr/bin/ruby
    

    【讨论】:

      【解决方案4】:

      Homebrew 安装有一个新链接

      ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

      【讨论】:

        【解决方案5】:

        自制软件的安装链接已移动。

        这是新的:

        ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
        

        【讨论】:

          【解决方案6】:
          sudo rm -rf /usr/local/Cellar /usr/local/.git
          ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
          

          我通过重新安装 brew 解决了。

          【讨论】:

            猜你喜欢
            • 2017-08-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-01-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多