【问题标题】:bundle install error "invalid byte sequence in US-ASCII (ArgumentError)"捆绑安装错误“US-ASCII 中的无效字节序列(ArgumentError)”
【发布时间】:2013-02-12 18:52:28
【问题描述】:

当我尝试运行“捆绑安装”时,我收到一个奇怪的错误:“US-ASCII 中的无效字节序列 (ArgumentError)”

  $ bundle install
    Updating git://github.com/devton/catarse_paypal_express.git
    Unfortunately, a fatal error has occurred. Please see the Bundler
    troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
    /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:294:in `block in load_gemspec_uncached': invalid byte sequence in US-ASCII (ArgumentError)
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:291:in `chdir'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:291:in `load_gemspec_uncached'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler.rb:282:in `load_gemspec'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:411:in `block in load_spec_files'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `each'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `load_spec_files'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:799:in `load_spec_files'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:381:in `local_specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/source.rb:774:in `specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:491:in `block in converge_locked_specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `each'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `converge_locked_specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:166:in `resolve'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:113:in `specs'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/definition.rb:108:in `resolve_remotely!'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/installer.rb:81:in `run'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/installer.rb:14:in `install'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/cli.rb:230:in `install'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/task.rb:27:in `run'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor.rb:275:in `dispatch'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/vendor/thor/base.rb:408:in `start'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/bin/bundle:14:in `block in <top (required)>'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:4:in `with_friendly_errors'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.2.3/bin/bundle:14:in `<top (required)>'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `load'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `<main>'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/ruby_noexec_wrapper:14:in `eval'
        from /Users/.../.rvm/gems/ruby-1.9.2-p320@global/bin/ruby_noexec_wrapper:14:in `<main>'

我确实找到了这个解决方法(对我有用):

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

但我认为稍后它会导致不同的错误,所以我宁愿不使用它,只是尝试了解这里真正的错误。 我确信同样的代码可以在不同的系统上运行......

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 encoding bundle bundler


    【解决方案1】:

    作为一种解决方法,您可以在系统中设置 utf8 语言环境:

    export LANG="C.UTF-8"
    export LC_ALL="C.UTF-8"
    

    更多信息请联系here

    【讨论】:

    • 就是这样 - 我不想要解决方法,我想了解问题的原因并解决它。
    • 没有查看确切的文件(好吧,在这种情况下是 gemspec)我不能肯定地说,但最可能的原因是文件是使用 utf8 编码的,但 Ruby 正在尝试读取文件并且假设它是使用 ASCII 编码的。你不能这样解决这个问题,处理它的最佳方法是使用告诉 ruby​​ 假设默认值为 utf8 的解决方法。
    • @Rizon 我已经用捆绑器问题的链接更新了答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多