2013-04-11 16 views
22

Dopo l'aggiornamento a Ruby 1.9.3 una delle mie app funziona correttamente ma la seconda che sto cercando di convertire fallisce nella fase "assets: precompilare" quando provo a distribuire con capistrano. Ecco lo stacktrace:attività di rake fallite con sequenza di byte non valida in US-ASCII

rake aborted! 
    rake aborted! 
    invalid byte sequence in US-ASCII 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:16:in `block in trace_on' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `map' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/trace_output.rb:14:in `trace_on' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:328:in `trace' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:183:in `display_error_message' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:169:in `rescue in standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:159:in `standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:88:in `load_rakefile' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:72:in `block in run' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' 
    /Users/george/.rvm/gems/[email protected]/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' 
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `eval' 
    /Users/george/.rvm/gems/[email protected]/bin/ruby_noexec_wrapper:14:in `<main>'  

Ho letto numerosi messaggi e provato diversi suggerimenti, ma senza alcun risultato. Ho provato ad aggiungere quanto segue alla parte superiore del mio Gemfile:

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

Ma non faceva alcuna differenza.

ho controllato LANG e LC_ALL variabili d'ambiente come segue

$ echo $LC_ALL 
en_NZ.UTF-8 

$ echo $LANG 
en_NZ.UTF-8 

Ho paura che davvero non capisco il messaggio a tutti e non so come identificare il file che presenta il problema.

Non riesco a eseguire alcuna operazione di rake: restituisce lo stesso errore.

Nota che posso eseguire l'applicazione perfettamente in modalità di sviluppo.

+0

Dopo aver cercato casualmente i file nel progetto. Ho deciso che, poiché il messaggio di errore non specificava un nome file per il problema, probabilmente era qualcosa a che fare con il rake stesso. La rimozione di un'attività di rake che conteneva dati codificati per l'adescamento del database ha risolto il problema. – giorgio

risposta

30

Aggiungere

#encoding: utf-8 

alla prima riga del tuo Rakefile (o qualsiasi file ha gli strani personaggi)

+1

Ma come faccio a trovare il file che è? – giorgio

+0

Grazie fotanus !!! Anche @giorgio il file si chiama 'Rakefile' – Trip

+2

No il file problema non era il Rakefile. Sarebbe stato facile !. Era uno dei miei compiti di rastrello che ha avuto il problema. – giorgio

1

assicurarsi che non stai digitando il file in romaji (giapponesi). O l'impostazione del carattere inglese per qualche altra lingua non US-ASCII.

Ho provato a eseguire un rake db: seed e stava ottenendo un errore simile. Ho scoperto che stavo scrivendo il mio file seme nei caratteri romani giapponesi. Ho dimenticato di cambiare il mio input da tastiera negli Stati Uniti prima di lavorare al mio progetto.

+0

come hai risolto allora? –

+1

@BrenoSalgado molto probabilmente aggiunge la codifica corretta nella parte superiore del file o rimuove i caratteri dal suo file seme. – fotanus

+0

@BrenoSalgado Sì, ho semplicemente cancellato i caratteri che avevo digitato in Romaji, tornando all'inglese americano e l'ho ridistribuito. – user2031423

5

Rintracciare il/i file/i del rake in errore tramite eliminando uno alla volta.

cioè i file sotto lib/task/delete_me.rake

poi ri-rastrello o riavviare che mai si dava il problema. Una volta che il problema è andato fai un git diff per vedere quale file è il colpevole e con il tuo editor preferito cambia la codifica del file.

cioè,

vim lib/task/delete_me.rake :. Impostare fileencoding = utf-8 : wq

poi ri-rastrello e si dovrebbe essere di nuovo in servizio.

1

Ho avuto il problema simile e "l'errore" era il mio primo nome: contiene un carattere non US-ASCII (ö) Questo è stato stampato nel file setup.rb e ha causato i problemi. L'ho cambiato in "oe" e ha funzionato bene.

mi invierà una e-mail a bitnami lasciarlo cambiato in qualche modo

2

Prima esecuzione

$ sudo gem install magic_encoding 

Poi vai nella cartella ed eseguire

$ magic_encoding 

Pronto!

+0

Welp l'ho fatto e non ha funzionato .. –

+0

È lavoro per me, grazie! – Vsevolod

0

Stavo ottenendo l'errore simile durante il tentativo di eseguire qualsiasi attività rake (utilizzo Rails 3.2 con Ruby 1.9.3). Ho provato tutte le soluzioni sopra senza alcun successo. Più tardi ho scoperto che ero una gemma specifica che stava causando l'errore (nel mio caso era la gemma Faker, che è stata aggiornata qualche giorno fa). Ho cancellato la gemma (non era in uso) e tutto ha cominciato a funzionare! Quindi, il mio consiglio è, se ti imbatti in questo tipo di problema e nessuna delle soluzioni elencate qui funziona, controlla la versione di ogni gemma e verifica se qualcuno di questi è stato aggiornato. Prova a eliminarli o impostare una versione compatibile.

Problemi correlati