2013-02-12 6 views
5

Kiedy próbuję uruchomić 'bundle install', mam dziwny błąd: "nieprawidłową sekwencję bajtów w US-ASCII (ArgumentError)"pakiet zainstalować błąd "nieprawidłowy ciąg bajtów w 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/[email protected]/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/[email protected]/gems/bundler-1.2.3/lib/bundler.rb:291:in `chdir' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler.rb:291:in `load_gemspec_uncached' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler.rb:282:in `load_gemspec' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/source.rb:411:in `block in load_spec_files' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `each' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/source.rb:410:in `load_spec_files' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/source.rb:799:in `load_spec_files' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/source.rb:381:in `local_specs' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/source.rb:774:in `specs' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/definition.rb:491:in `block in converge_locked_specs' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `each' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/definition.rb:480:in `converge_locked_specs' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/definition.rb:166:in `resolve' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/definition.rb:113:in `specs' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/definition.rb:108:in `resolve_remotely!' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/installer.rb:81:in `run' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/installer.rb:14:in `install' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/cli.rb:230:in `install' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/vendor/thor/task.rb:27:in `run' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/vendor/thor.rb:275:in `dispatch' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/vendor/thor/base.rb:408:in `start' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/bin/bundle:14:in `block in <top (required)>' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:4:in `with_friendly_errors' 
     from /Users/.../.rvm/gems/[email protected]/gems/bundler-1.2.3/bin/bundle:14:in `<top (required)>' 
     from /Users/.../.rvm/gems/[email protected]/bin/bundle:19:in `load' 
     from /Users/.../.rvm/gems/[email protected]/bin/bundle:19:in `<main>' 
     from /Users/.../.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
     from /Users/.../.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>' 

znalazłem to obejście (który pracuje dla mnie):

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

Ale myślę, że później powoduje inny błąd więc wolałbym nie używać go i po prostu starać się zrozumieć, co jest naprawdę źle tutaj. wiem na pewno ten sam kod działa na innym systemie ...

Odpowiedz

15

Jako obejście można ustawić locale utf8 w systemie:

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

Więcej informacji na ten temat jest here

+0

To rzecz - nie chcę obejścia, chcę zrozumieć przyczynę problemu i go rozwiązać. – Rizon

+1

Bez wyświetlania dokładnego pliku (dobrze, gemspec w tym przypadku) nie mogę powiedzieć na pewno, ale najbardziej prawdopodobną przyczyną jest to, że plik jest zakodowany za pomocą utf8, ale Ruby próbuje odczytać plik i zakładając, że jest zakodowany przy użyciu ASCII. Nie możesz rozwiązać tego problemu jako takiego, a najlepszą metodą radzenia sobie z nim jest użycie obejścia, które mówi ruby, że domyślnie jest to utf8. – Tomdarkness

+0

@Rizon Zaktualizowałem odpowiedź, podając link do problemu z bundlerami –

Powiązane problemy