La instalación de Metasploit falla. Requiere> = Ruby 2.1 pero tengo 2.2

1

Literalmente he estado tratando de instalar metasploit durante 2 días y creo que es una cantidad de tiempo ridícula solo para instalar algún software. Tengo Arch Linux y estoy tratando de instalar metasploit-git desde AUR. He seguido la guía de metasploit de Arch Linux, así como esta .

He seguido la guía hasta el punto donde necesito correr bundle install. Instala con éxito un puñado de gemas, pero falla con este error:

Gem::InstallError: metasploit-concern requires Ruby version >= 2.1.
An error occurred while installing metasploit-concern (0.4.0), and Bundler cannot continue.
Make sure that `gem install metasploit-concern -v '0.4.0'` succeeds before bundling.

Estas son algunas de las variables de entorno:

MY_RUBY_HOME=/home/me/.rvm/rubies/ruby-1.9.3-p551

RUBY_VERSION=ruby-2.2.1

PATH=/home/me/.rvm/gems/ruby-1.9.3-p551/bin:/home/me/.rvm/gems/ruby-1.9.3-p551@global/bin:/home/me/.rvm/rubies/ruby-1.9.3-p551/bin:/home/me/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/me/.gem/ruby/2.2.0/bin:/home/me/.rvm/bin:/home/me/.rvm/bin
GEM_HOME=/home/me/.rvm/gems/ruby-2.2.1

Veo que algunas de las variables dicen ruby-1.9, pero no estoy seguro de qué hacer al respecto. La salida de ruby --versiones:

ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]

Tengo instalado Ruby 2.2.1, así que no sé por qué esto todavía se muestra como la versión.

Resulta que el problema era tener múltiples instancias de

[[-s "$ HOME / .rvm / scripts / rvm"]] && source "$ HOME / .rvm / scripts / rvm"

Eliminar todo menos uno en / etc / profile y luego ejecutarlo rvm use --default 2.2.1corrigió esto.

usuario3408678
fuente
Si está utilizando RVM, entonces Ruby debería ser 2.2.1. ¿Pero se establece como la versión correcta? ¿Cuál es la salida de ruby -version? También para RVM tal vez debería bloquear en 2.2.1 como su versión predeterminada Rubí mediante la ejecución de este comando, rvm --default use 2.2.1. Además, sugeriría intentar comentar MY_RUBY_HOMEy PATH. Honestamente, no tengo idea de por qué algo de eso se establecería allí, pero parece un desastre.
JakeGould
Odio preguntar, pero ¿qué quieres decir con comentarlos? No sé por qué PATH está configurado para eso printenvporque mi / etc / profile no contiene el mismo PATH que muestra printenv. También agregué ruby ​​--version output en mi publicación.
user3408678
Busque en los archivos ~/.bash_profileo ~/.profileen su directorio de inicio y vea dónde está PATHy qué MY_RUBY_HOMEse está configurando. Luego comente esas líneas colocando un #frente a esas líneas. Luego cierre sesión y vuelva a iniciar sesión y vea qué ruby --versiones. Tal como está, todo esto parece un gran desastre idiosincrásico para su configuración, lo que significa que pocas personas podrán ayudarlo a limpiar esto aquí. Necesitas desentrañar las cosas para llegar a un punto sano / estable.
JakeGould
No hay ninguna variable MY_RUBY_HOME establecida en ningún archivo. En cualquier caso, agregué 'unset MY_RUBY_HOME' en / etc / profile. Sin embargo, mi variable PATH solo se está configurando dentro de / etc / profile y solo no tiene todas las rutas rvm. Esos parecen estar establecidos en otro lugar.
user3408678
"En cualquier caso, agregué 'unset MY_RUBY_HOME' en / etc / profile". Al hacer lo que está haciendo, está creando una configuración incorrecta. Realmente parece que está muy loco y simplemente está agregando ajustes y ajustes con poco o ningún pensamiento. Es por eso que estás en este lío en primer lugar y por qué, si aún lo estás haciendo, solo estás empeorando los problemas. Realmente deberías limpiar tu configuración al cuadrado y luego avanzar de nuevo con más cautela y más deliberadamente. Dudo que alguien más pueda ayudarte a resolver este desastre en este momento. Sé que no puedo.
JakeGould

Respuestas:

2

Después de 2 días de prueba y error, encontré una solución, siga los pasos a continuación pero pruébelo primero en una máquina virtual . Esto funcionó para mí en Kali Linux, espero que funcione para usted. Antes de continuar, actualice su máquina.

  1. git clone https://github.com/rapid7/metasploit-framework "folder_name"
  2. siga estos pasos para actualizar ruby https://amionrails.wordpress.com/2014/02/10/install-rvm-ruby-on-rails-and-ruby-on-kali-linux/ siga todos los pasos para instalar rieles
  3. ./msfupdate - verifica si hay un error si continúa
  4. instale estos: apt-get install build-essential libreadline-dev libssl-dev libpq5 libpq-dev libreadline5 libsqlite3-dev libpcap-dev openjdk-7-jre git-core autoconf postgresql pgadmin3 curl zlib1g-dev libxml2-dev libxslt1-dev vncviewer -dev curl zlib1g-dev ruby-dev
  5. paquete de instalación de gemas
  6. paquete de instalación
  7. ./msfupdate

A continuación, deberá conectar la base de datos.

  1. iniciar el servicio postgresql si no se está ejecutando
  2. su - postgres
  3. createuser "usuario" -P -S -R -D
  4. createdb -O "usuario" msf
  5. salida
  6. volver a la carpeta de inicio si actualmente accede a la carpeta git clone
  7. cd .msf4 /
  8. nano -w database.yml

agregue estas líneas al archivo. producción:
adaptador: base de
datos postgresql :
nombre de usuario msf :
contraseña "usuario"
: host "contraseña" :
puerto 127.0.0.1 :
grupo 5432 :
tiempo de espera 75 : 5


Luego regrese a la carpeta msf (carpeta git clone) y ejecute ./msfconsole

Disculpas por este formato, es mi primera solución y gracias a hak5 por el tutorial sobre la instalación de metasploit desde github y amionrails para el tutorial sobre la actualización de ruby. Hazme saber si esto funciona.

Adithya
fuente