Сбой установки Metasploit. Требуется> = Ruby 2.1, но у меня есть 2.2

8007
user3408678

Я буквально пытался установить metasploit в течение 2 дней, и я думаю, что это просто смешное время, чтобы установить какое-то программное обеспечение. У меня есть Arch Linux, и я пытаюсь установить metasploit-git из AUR. Я следовал руководству по Metasploit Arch linux, а также этому .

Я следовал за руководством до того момента, когда мне нужно бежать bundle install. Он успешно устанавливает несколько драгоценных камней, но терпит неудачу с этой ошибкой:

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. 

Вот некоторые из переменных среды:

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 

Я вижу, что некоторые переменные говорят ruby-1.9, но я не уверен, что с этим делать. Вывод ruby --version:

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

У меня установлен ruby ​​2.2.1, поэтому я не знаю, почему это все еще отображается как версия.

Оказывается, что проблема имела несколько экземпляров

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

Удаление всех, кроме одного в / etc / profile, а затем запуск rvm use --default 2.2.1исправили это.

1
Если вы используете RVM, тогда Ruby должен быть 2.2.1. Но установлена ​​ли она как правильная версия? Что выводит `ruby -version`? Также для RVM, возможно, вам следует заблокировать 2.2.1 в качестве версии Ruby по умолчанию, выполнив эту команду `rvm --default use 2.2.1`. Также я бы предложил попробовать закомментировать `MY_RUBY_HOME` и` PATH`. Честно говоря, понятия не имею, почему все это будет происходить там, но это похоже на беспорядок. JakeGould 9 лет назад 0
Ненавижу спрашивать, но что вы имеете в виду, комментируя их? Я не знаю, почему PATH установлен в «printenv», потому что мой / etc / profile не содержит того же PATH, который показывает printenv. Также я добавил вывод ruby ​​--version в свой пост. user3408678 9 лет назад 0
Посмотрите файлы `~ / .bash_profile` или` ~ / .profile` в вашем домашнем каталоге и посмотрите, где устанавливаются эти `PATH` и` MY_RUBY_HOME`. Затем закомментируйте эти строки, поместив `#` перед этими строками. Затем выйдите и снова войдите в систему и посмотрите, что такое `ruby --version`. В нынешнем виде все это выглядит как особый беспорядок в вашей настройке, а это означает, что мало кто сможет помочь вам разобраться с этим здесь. Вам нужно распутать вещи, чтобы добраться до вменяемой / стабильной точки. JakeGould 9 лет назад 0
Ни в одной из файлов не задана переменная MY_RUBY_HOME. В любом случае я добавил 'unset MY_RUBY_HOME' в / etc / profile. Тем не менее, моя переменная PATH устанавливается только в / etc / profile и не имеет всех путей rvm. Те, кажется, установлены где-то еще. user3408678 9 лет назад 0
«В любом случае я добавил« unset MY_RUBY_HOME »в / etc / profile». Делая то, что вы делаете, вы создаете неправильную настройку. Вам действительно кажется, что вы над головой и просто добавляете твики и настройки практически без раздумий. Вот почему вы в первую очередь в этом беспорядке и почему - если вы все еще делаете это - вы только усугубляете проблемы. Вы действительно должны привести в порядок свои установки, а затем двигаться вперед более осторожно и более осознанно. Я сомневаюсь, что кто-то еще может помочь вам разгадать этот беспорядок в этой точке. Я знаю, что не могу. JakeGould 9 лет назад 0
Вы правы, я сожалею об этом. Несмотря на это, я на самом деле просто решил это с твоим советом. Спасибо. user3408678 9 лет назад 0

1 ответ на вопрос

2
Adithya

После 2 дней проб и ошибок я нашел решение, следуйте инструкциям ниже, но сначала попробуйте его на виртуальной машине . Это работает для меня на Kali Linux, надеюсь, это работает для вас. Прежде чем идти вперед, обновите вашу машину.

  1. git clone https://github.com/rapid7/metasploit-framework "имя_папки"
  2. выполните следующие шаги для обновления ruby https://amionrails.wordpress.com/2014/02/10/install-rvm-ruby-on-rails-and-ruby-on-kali-linux/ выполните все шаги до установки направляющих
  3. ./msfupdate - проверить на наличие ошибки, если она продолжается
  4. установить эти: apt-get установить build-essential -dev curl zlib1g-dev ruby-dev
  5. gem install bundle
  6. комплектация
  7. ./msfupdate

Далее вам нужно будет подключить базу данных.

  1. запустить сервис postgresql, если он не запущен
  2. су - постгрес
  3. createuser "пользователь" -P -S -R -D
  4. создалb -O "пользователь" MSF
  5. выход
  6. вернитесь в домашнюю папку, если в данный момент обращаетесь к папке git clone
  7. cd .msf4 /
  8. nano -w database.yml

добавить эти строки в файл. производство:
адаптер: postgresql
база данных: msf
имя пользователя: "пользователь"
пароль: "пароль"
хост: 127.0.0.1
порт: 5432
пул: 75
тайм-аут: 5


Затем вернитесь в папку msf (папка git clone) и запустите ./msfconsole

Извиняюсь за этот формат, это мое первое решение и спасибо hak5 за руководство по установке metasploit из github и amionrails за руководство по обновлению ruby. дайте мне знать, если это работает.

Похожие вопросы