Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
531 views
in Technique[技术] by (71.8m points)

ruby on rails 3 - When run bundle get invalid byte sequence in US-ASCII

I'm trying to deploy my Rails 3.0 app. I use rvm and ruby 1.9.2 (p 180 or p 290 - no difference) on the FreeBSD production server. When I run bundle command, I get this exception on every :git gem (it seems that exception is raised only when I use edge versions with :git option in Gemfile):

...
Installing has_scope (0.5.1) 
Installing responders (0.6.4) 
Using inherited_resources (1.2.2) from https://github.com/josevalim/inherited_resources.git (at master) /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1915:in `gsub': invalid byte sequence in US-ASCII (ArgumentError)
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1915:in `to_yaml'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:79:in `block (2 levels) in write_package'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:73:in `block (3 levels) in add_gem_contents'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:83:in `new'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:67:in `block (2 levels) in add_gem_contents'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `wrap'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:65:in `block in add_gem_contents'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_writer.rb:113:in `add_file'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:63:in `add_gem_contents'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package/tar_output.rb:31:in `open'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/package.rb:44:in `open'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:78:in `block in write_package'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/open-uri.rb:35:in `open'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/open-uri.rb:35:in `open'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:77:in `write_package'
from /home/tmr/data/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/builder.rb:39:in `build'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/source.rb:456:in `block in generate_bin'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/source.rb:456:in `chdir'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/source.rb:456:in `generate_bin'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/source.rb:565:in `install'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/installer.rb:58:in `block (2 levels) in run'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/installer.rb:57:in `block in run'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/installer.rb:49:in `run'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/installer.rb:8:in `install'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/cli.rb:220:in `install'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/vendor/thor/task.rb:22:in `run'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/vendor/thor.rb:263:in `dispatch'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/lib/bundler/vendor/thor/base.rb:386:in `start'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/gems/bundler-1.0.18/bin/bundle:13:in `<top (required)>'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/bin/bundle:19:in `load'
from /home/tmr/data/.rvm/gems/ruby-1.9.2-p180/bin/bundle:19:in `<main>'

My gemfile:

source 'http://rubygems.org'

group :production do
  gem "unicorn"
end

gem 'rails', '3.0.10'
gem 'devise' #, :git=>'https://github.com/plataformatec/devise.git'
gem 'russian', :git => 'https://github.com/yaroslav/russian.git'
gem 'i18n'
gem 'cancan', :git=>'https://github.com/ryanb/cancan.git'
gem 'riddle', :git => 'git://github.com/freelancing-god/riddle.git'
gem 'thinking-sphinx', :git => 'https://github.com/freelancing-god/thinking-sphinx.git', :branch=>'rails3'
gem 'inherited_resources', :git=> 'https://github.com/josevalim/inherited_resources.git'
gem 'has_scope'
gem 'simple_form'
gem 'dynamic_form'
#gem "crummy", ">= 1.0.1"
gem "haml"
gem 'jquery-rails', '>= 0.2.6'
gem 'kaminari'
gem 'mysql2', '< 0.3'
gem "paperclip", "~> 2.3"
gem "whenever"

group :development do
  gem 'haml-rails' #, :git=>"https://github.com/indirect/haml-rails.git"
  gem "capistrano"
end

1.9 is horrible with it's encoding problems... could you help once again?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

For me works, adding this lines to the top of Gemfile

if RUBY_VERSION =~ /1.9/
  Encoding.default_external = Encoding::UTF_8
  Encoding.default_internal = Encoding::UTF_8
end

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...