15/02/2011
O rubygems 1.5 foi lançado há quase um mês, e, junto com novas features, ele quebrou várias coisas, entre elas o Metasploit.
Tentar iniciar o msfconsole solta um belo
Encoding::UndefinedConversionError
Como pode ser visto neste bug.
Por sorte, há um fix bem fácil.
Primeiro, encontre todos os arquivos no seu rubygems que carregam outros arquivos com UTF:
grep -ri ‘File.read.*utf’ ~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby
Atente para o fato de que ruby-1.9.2-p136 pode mudar, dependendo do teu sistema e da versão do ruby que você instalar. Se você não usa rvm, aí não faço idéia de onde você encontra.
Aqui a pesquisa retornou dois arquivos (além de vários de gems como o Nokogiri e o builder, mas as linhas não eram exatamente o que procurava):
~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rubygems/source_index.rb
~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb
Caso haja outros arquivos, aconselho editar primeiro esses dois, testar, e então modificar os outros, caso o problema persista.
Nesses dois arquivos, procure a linha que diz
File.read file, :encoding => “UTF-8”
Ela deve estar em um bloco if-else. Você pode remover todo o bloco, deixando somente a linha
File.read file
Ou editar a primeira linha e remover da vírgula até o fim, tanto faz.
Após editar estes dois arquivos, o metasploit deverá carregar corretamente.
Testei isso tanto no Fedora 14 quanto no Snow Leopard 10.6.6 e funcionou. Qualquer coisa deixe um comentário.
blog comments powered by Disqus