Ruby on rails 推送Heroku、json和ruby时出错;1.9.2
我在推Heroku时遇到问题,请遵循以下错误Ruby on rails 推送Heroku、json和ruby时出错;1.9.2,ruby-on-rails,json,heroku,git-push,Ruby On Rails,Json,Heroku,Git Push,我在推Heroku时遇到问题,请遵循以下错误 -----> Gemfile detected, running Bundler version 1.0.7 Unresolved dependencies detected; Installing... Using --without development:test Fetching source index for http://rubygems.org/ Installing rake (0.9.2) I
-----> Gemfile detected, running Bundler version 1.0.7
Unresolved dependencies detected; Installing...
Using --without development:test
Fetching source index for http://rubygems.org/
Installing rake (0.9.2)
Installing abstract (1.0.0)
Installing activesupport (3.0.9)
Installing builder (2.1.2)
Installing i18n (0.5.0)
Installing activemodel (3.0.9)
Installing erubis (2.6.6)
Installing rack (1.2.3)
Installing rack-mount (0.6.14)
Installing rack-test (0.5.7)
Installing tzinfo (0.3.29)
Installing actionpack (3.0.9)
Installing mime-types (1.16)
Installing polyglot (0.3.2)
Installing treetop (1.4.10)
Installing mail (2.2.19)
Installing actionmailer (3.0.9)
Installing arel (2.0.10)
Installing activerecord (3.0.9)
Installing activeresource (3.0.9)
Installing diff-lcs (1.1.2)
Installing json (1.5.3) with native extensions
/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/specification.rb:519:in `normalize_yaml_input': invalid byte sequence in US-ASCII (ArgumentError)
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/specification.rb:479:in `from_yaml'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:183:in `load_gemspec'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:51:in `block in initialize'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:64:in `block in each'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:55:in `loop'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:55:in `each'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:32:in `initialize'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:17:in `new'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:17:in `open'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package.rb:58:in `open'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:63:in `from_io'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:51:in `block in from_file_by_path'
from /usr/ruby1.9.2/lib/ruby/1.9.1/open-uri.rb:35:in `open'
from /usr/ruby1.9.2/lib/ruby/1.9.1/open-uri.rb:35:in `open'
from /usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:50:in `from_file_by_path'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/source.rb:72:in `fetch'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:45:in `block in run'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `block in each'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in `each'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:44:in `run'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:8:in `install'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/cli.rb:225:in `install'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:in `run'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in `dispatch'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in `start'
from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/bin/bundle:13:in `<top (required)>'
from /usr/ruby1.9.2/bin/bundle:19:in `load'
from /usr/ruby1.9.2/bin/bundle:19:in `<main>'
FAILED: http://devcenter.heroku.com/articles/bundler
检测到Gemfile,正在运行Bundler版本1.0.7
检测到未解决的依赖关系;安装。。。
使用——不开发:测试
正在获取的源索引http://rubygems.org/
安装耙(0.9.2)
安装摘要(1.0.0)
安装activesupport(3.0.9)
安装生成器(2.1.2)
安装i18n(0.5.0)
安装activemodel(3.0.9)
安装erubis(2.6.6)
安装机架(1.2.3)
安装机架安装(0.6.14)
安装机架测试(0.5.7)
安装tzinfo(0.3.29)
安装actionpack(3.0.9)
安装mime类型(1.16)
安装polyglot(0.3.2)
安装树梢(1.4.10)
安装邮件(2.2.19)
安装actionmailer(3.0.9)
安装arel(2.0.10)
安装activerecord(3.0.9)
安装activeresource(3.0.9)
安装差异lcs(1.1.2)
使用本机扩展安装json(1.5.3)
/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/specification.rb:519:in'normalize_yaml_input':US-ASCII中的字节序列无效(ArgumentError)
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/specification.rb:479:in'from_yaml'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:183:in'load_gempec'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:51:in`block in initialize'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:64:in'block in each'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:55:in'loop'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_reader.rb:55:in'each'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:32:in'initialize'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:17:in'new'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package/tar_input.rb:17:in'open'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/package.rb:58:in'open'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:63:in'from_io'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:51:in`block in from_file_by_path'
from/usr/ruby1.9.2/lib/ruby/1.9.1/openuri.rb:35:in'open'
from/usr/ruby1.9.2/lib/ruby/1.9.1/openuri.rb:35:in'open'
from/usr/ruby1.9.2/lib/ruby/1.9.1/rubygems/format.rb:50:in‘from_file_by_path’
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/source.rb:72:in'fetch'
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:45:在“运行中的块”中
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in`block in each'
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in'each'
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/spec_set.rb:12:in'each'
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:44:在“运行”中
来自/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/installer.rb:8:in'install'
从/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/cli.rb:225:“安装”中
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/task.rb:22:处于“运行”状态
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/invocation.rb:118:in“invoke_task”
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor.rb:246:in“dispatch”
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/lib/bundler/vendor/thor/base.rb:389:in'start'
from/usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.7/bin/bundle:13:in`'
from/usr/ruby1.9.2/bin/bundle:19:in‘load’
from/usr/ruby1.9.2/bin/bundle:19:in`'
失败:http://devcenter.heroku.com/articles/bundler
!!Heroku推送被拒绝,无法通过Bundler安装gems
我使用的是ruby 1.9.2。根据github在另一个gem上的类似问题,这似乎是因为gempec文件中缺少编码声明 我检查了json 1.5.3和1.5.4源代码,它们都有 所以,可能是json旁边的另一个gems,可能没有这一行
您可能想在项目根文件夹中找到gems with command
bundle install
。我的解决方法是,将此添加到Gemfile的顶部
if RUBY_VERSION =~ /1.9/
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
end
ref:您能发布“bundle install”命令的输出吗?