Não é possível instalar gems com Ruby: “sequência de bytes inválida em UTF-8”

2

Estou usando o Leão da montanha. Eu instalei o Ruby primeiro com o RVM, depois com o rbenv . Posso garantir que ele está executando o mais recente com which ruby , ele aponta corretamente para o instalado com rbenv .

gem não instala nenhuma gem, sempre me lança o mesmo erro (nem sempre no mesmo arquivo, mas o mesmo erro com split :

Users/Macbook/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/mkmf.rb:1357:in 'split': invalid byte sequence in UTF-8 (ArgumentError)
    from /Users/Macbook/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/mkmf.rb:1357:in 'find_executable0'
    from /Users/Macbook/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/mkmf.rb:1564:in 'pkg_config'
    from extconf.rb:15:in '<main>'

Eu tentei configurar essas exportações no meu .profile , sem sorte:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Eu também atualizei o bash com o brew e o ativei com chsh . O iTerm2 está configurado corretamente com a codificação UTF-8 também.

Não tenho ideia do que mais fazer agora. Eu tenho o XCode 4.6.3.

    
por Cristian 14.10.2013 / 18:03

2 respostas

0

O problema foi resolvido limpando todos os arquivos relacionados com a configuração da variável de ambiente PATH ( .bash_profile , .profile , .bashrc ) e, em seguida, instalando rvm novamente. A execução de um echo $PATH revelou um caractere estranho que quebrou o processamento do bundler do PATH .

    
por 21.10.2013 / 00:55
0

Tenho o Cygwin de 64 bits, o Ruby 2.0.0 e o gem 2.4.1 e estava passando pelo mesmo problema. gem install ... , gem update , tudo terminou com " ERRO: Ao executar gem ... (ArgumentError) sequência de bytes inválida em UTF-8 ".

Eu também tinha todos os locais definidos como " en_US.UTF-8 ".

Eu li em algum lugar que deveria ajudar a definir LANG para uma string vazia ou " C.BINARY ", mas isso não ajudou. Mas foi uma boa dica para começar a experimentar.

Finalmente, resolvi isso definindo LANG e LC_ALL como uma string vazia. Todas as outras variáveis de ambiente de código de idioma ( LC_CTYPE etc.) foram automaticamente definidas como "C.UTF -8 "com isso, LANG e LC_ALL permaneceram vazios.

Agora gem está finalmente funcionando.

Eu acho que você teve o mesmo motivo. Quando você "limpou" seus dotfiles, provavelmente alterou os valores das suas localidades.

    
por 18.09.2014 / 18:40