Ruby / Brew停止工作优胜美地

时间:2015-05-06 04:25:15

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

我对此很新,所以请跟我一起..

我一直在寻找这个问题的解决方案一周。

Ruby似乎没有工作

ruby
-bash: ruby: command not found

ruby -v
-bash: ruby: command not found

每当我尝试自制软件时,这就是回来了

/usr/local/bin/brew: /usr/local/Library/brew.rb:     /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby: bad     interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

正如你在上面所看到的那样,我已经将ruby框架从1.8改为当前,正如其他人所建议的那样,但这并没有像遇到同样问题的用户那样解决问题。

所以搜索继续......

我的usr / local / bin / brew脚本看起来像这样 -

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
# encoding: UTF-8

std_trap = trap("INT") { exit! 130 } # no backtrace thanks

HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE']

if ARGV == %w{--prefix}
  puts File.dirname(File.dirname(HOMEBREW_BREW_FILE))
  exit 0
end

require 'pathname'
HOMEBREW_LIBRARY_PATH =     Pathname.new(__FILE__).realpath.dirname.parent.join("Library/Homebrew").to_s
$:.unshift(HOMEBREW_LIBRARY_PATH + '/vendor')
$:.unshift(HOMEBREW_LIBRARY_PATH)
require 'global'

case ARGV.first when '-h', '--help', '--usage', '-?', 'help', nil
  require 'cmd/help'
  puts Homebrew.help_s
  exit ARGV.first ? 0 : 1
when '--version'
  puts HOMEBREW_VERSION
  exit 0
when '-v'
  puts "Homebrew #{HOMEBREW_VERSION}"
  # Shift the -v to the end of the parameter list
  ARGV << ARGV.shift
  # If no other arguments, just quit here.
  exit 0 if ARGV.length == 1
end

   # Check for bad xcode-select before anything else, because `doctor` and
# many other things will hang
# Note that this bug was fixed in 10.9
if OS.mac? && `xcode-select -print-path 2>/dev/null`.chomp == '/' &&     MacOS.version < :mavericks
  ofail <<-EOS.undent
  Your xcode-select path is currently set to '/'.
  This causes the `xcrun` tool to hang, and can render Homebrew unusable.
  If you are using Xcode, you should:
    sudo xcode-select -switch /Applications/Xcode.app
  Otherwise, you should:
    sudo rm -rf /usr/share/xcode-select
 EOS

  exit 1
end

case HOMEBREW_PREFIX.to_s when '/', '/usr'
  # it may work, but I only see pain this route and don't want to support it
  abort "Cowardly refusing to continue at this prefix: #{HOMEBREW_PREFIX}"
end
if OS.mac? and MacOS.version < "10.5"
  abort <<-EOABORT.undent
    Homebrew requires Leopard or higher. For Tiger support, see:
    https://github.com/mistydemeo/tigerbrew
  EOABORT
end

# Many Pathname operations use getwd when they shouldn't, and then throw
# odd exceptions. Reduce our support burden by showing a user-friendly error.
Dir.getwd rescue abort "The current working directory doesn't exist, cannot proceed."


def require? path
  require path.to_s.chomp
rescue LoadError => e
  # HACK :( because we should raise on syntax errors but
  # not if the file doesn't exist. TODO make robust!
  raise unless e.to_s.include? path
end

begin
  trap("INT", std_trap) # restore default CTRL-C handler

  aliases = {'ls' => 'list',
             'homepage' => 'home',
             '-S' => 'search',
             'up' => 'update',
             'ln' => 'link',
             'instal' => 'install', # gem does the same
             'rm' => 'uninstall',
             'remove' => 'uninstall',
             'configure' => 'diy',
             'abv' => 'info',
             'dr' => 'doctor',
             '--repo' => '--repository',
             'environment' => '--env',
             '-c1' => '--config',
             }

  cmd = ARGV.shift
  cmd = aliases[cmd] if aliases[cmd]

  sudo_check = Set.new %w[ install link pin unpin upgrade ]

  if sudo_check.include? cmd
    if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero?
      raise "Cowardly refusing to `sudo brew #{cmd}`\n#{SUDO_BAD_ERRMSG}"
    end
  end

  # Add contributed commands to PATH before checking.
  ENV['PATH'] += ":#{HOMEBREW_CONTRIB}/cmd"
  if require? HOMEBREW_REPOSITORY/"Library/Homebrew/cmd"/cmd
    Homebrew.send cmd.to_s.gsub('-', '_').downcase
  elsif which "brew-#{cmd}"
    %w[CACHE CELLAR LIBRARY_PATH PREFIX REPOSITORY].each do |e|
      ENV["HOMEBREW_#{e}"] = Object.const_get "HOMEBREW_#{e}"
    end
    exec "brew-#{cmd}", *ARGV
  elsif require? which("brew-#{cmd}.rb").to_s
    exit 0
  else
    onoe "Unknown command: #{cmd}"
    exit 1
  end

rescue FormulaUnspecifiedError
  abort "This command requires a formula argument"
rescue KegUnspecifiedError
  abort "This command requires a keg argument"
rescue UsageError
  onoe "Invalid usage"
  abort ARGV.usage
rescue SystemExit
  puts "Kernel.exit" if ARGV.verbose?
  raise
rescue Interrupt => e
  puts # seemingly a newline is typical
  exit 130
rescue BuildError => e
  e.dump
  exit 1
rescue RuntimeError, SystemCallError => e
  raise if e.message.empty?
  onoe e
  puts e.backtrace if ARGV.debug?
  exit 1
rescue Exception => e
  onoe e
  puts "#{Tty.white}Please report this bug:"
  puts "    #{Tty.em}#{ISSUES_URL}#{Tty.reset}"
  puts e.backtrace
  exit 1
else
  exit 1 if Homebrew.failed?
end

    enter code here

这有什么意义还是响铃? 它可能与我收到Homebrew或Ruby错误的原因有什么关系吗?

非常感谢任何帮助。

我很乐意为我们提供尽可能多的信息来解决这个问题! :)

编辑:

当我尝试运行brew医生时会发生这种情况:

rvm install ruby
Searching for binary rubies, this might take some time.
Found remote file     https://rvm_io.global.ssl.fastly.net/binaries/osx/10.10/x86_64/ruby-    2.2.1.tar.bz2
Checking requirements for osx.
/usr/local/bin/brew: /usr/local/Library/brew.rb:     /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby: bad     interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0
ERROR: '/bin' is not writable - it is required for Homebrew, try 'brew  doctor' to fix it!
Requirements installation failed with status: 1.
$ brew doctor
/usr/local/bin/brew: /usr/local/Library/brew.rb:     /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

2 个答案:

答案 0 :(得分:0)

您使用的是RVM吗?我会将默认值设置为您之前的版本,然后重试。 https://rvm.io/rubies/default

答案 1 :(得分:0)

如果你无法在终端提示符下运行echo "puts 'hello world'" | /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby,那么已经发生了卸载你的系统Ruby的事情,你应该重新安装OS X来恢复它。