我對ruby一無所知,任何人都可以幫忙解釋這個腳本在做什麼嗎?ruby腳本說明請
#!/usr/bin/env ruby
begin
require '/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler'
# Check if an older version of bundler is installed(this part i understand)
$:.each do |path|
if path =~ %r'/bundler-0.(\d+)' && $1.to_i < 9
err = "Please remove Bundler 0.8 versions."
err << "This can be done by running `gem cleanup bundler`."
abort(err)
end
end
#it is from here that i dont understand
require '/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/cli'
Bundler::CLI.start
rescue Bundler::BundlerError => e
Bundler.ui.error e.message
Bundler.ui.debug e.backtrace.join("\n")
exit e.status_code
rescue Interrupt => e
Bundler.ui.error "\nQuitting..."
Bundler.ui.debug e.backtrace.join("\n")
exit 1
end
這裏我IRB測試:
/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/bin$ irb
irb(main):001:0> require 'bundler'
LoadError: no such file to load -- bundler
from (irb):1:in `require'
from (irb):1
from :0
irb(main):002:0> require 'bundler/cli'
LoadError: no such file to load -- bundler/cli
from (irb):2:in `require'
from (irb):2
from :0
irb(main):003:0> Bundler::CLI.start
NameError: uninitialized constant Bundler
from (irb):3
from :0
irb(main):004:0>
感謝
是我得到的錯誤:/usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/bin/bundle:14:in rescue in':未初始化的常量Bundler :: BundlerError(NameError) 這就是爲什麼bundler cli不想因爲上述原因而啓動的原因?謝謝 –
2012-02-14 11:35:11
'require'/ usr/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler''可能是失敗的那一行。那個地方有文件嗎? – seb 2012-02-14 11:36:32
是一個名爲bundle的可執行文件:-rwxr-xr-x 1 root root 699 2012-02-14 09:48 bundle – 2012-02-14 11:42:31