7

「バンドル インストール」を実行しようとすると、「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

しかし、後で別のエラーが発生すると思うので、使用せずに、ここで実際に何が問題なのかを理解しようとします。この同じコードが別のシステムで機能することは確かです...

4

1 に答える 1

17

回避策として、システムで utf8 ロケールを設定できます。

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

これに関する詳細情報はこちら

于 2013-02-12T19:13:51.357 に答える