Description of problem: [doktor5000@Mageia4 ~]$ msfconsole /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- iconv (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip/zip.rb:3:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip.rb:1:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db.rb:27:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db_manager.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/framework.rb:69:in `<class:Framework>' from /usr/share/metasploit/lib/msf/core/framework.rb:13:in `<module:Msf>' from /usr/share/metasploit/lib/msf/core/framework.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core.rb:34:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/bin/msfconsole:136:in `<main>' [doktor5000@Mageia4 ~]$ msfcli /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- iconv (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip/zip.rb:3:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip.rb:1:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db.rb:27:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db_manager.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/framework.rb:69:in `<class:Framework>' from /usr/share/metasploit/lib/msf/core/framework.rb:13:in `<module:Msf>' from /usr/share/metasploit/lib/msf/core/framework.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core.rb:34:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/bin/msfcli:26:in `<main>' I'm not into ruby, but either there are a lot of dependencies missing/not found or some semantics have changed. Maybe it needs a small change like http://stackoverflow.com/questions/16924370/how-fix-this-error-kernel-require-rb45in-require-cannot-load-such-file#comment24431625_16924370 This is what's currently installed rg. ruby: [doktor5000@Mageia4 ~]$ rpm -qa | grep -e metasploit -e ruby | sort lib64ruby1.9-1.9.3.p484-1.mga3 lib64ruby2.0-2.0.0.p247-8.mga4 metasploit-4.5-4.mga4 metasploit-gui-4.5-4.mga4 ruby-2.0.0.p247-8.mga4 ruby-RubyGems-2.1.11-3.mga4 ruby-atk-2.0.2-5.mga4 ruby-cairo-1.12.6-4.mga4 ruby-gdk_pixbuf2-2.0.2-6.mga4 ruby-glib2-2.0.2-7.mga4 ruby-gtk2-2.0.2-5.mga4 ruby-irb-2.0.0.p247-8.mga4 ruby-json-1.7.7-9.mga4 ruby-msgpack-0.5.8-3.mga4 ruby-pango-2.0.2-7.mga4 ruby-pkg-config-1.1.4-5.mga4 ruby-rdoc-4.0.1-7.mga4 Also tried removing the stale lib64ruby1.9-1.9.3.p484-1.mga3 (seems a leftover from mga3 -> 4 upgrade) but no change. Reproducible: Steps to Reproduce:
Seems metasploit is not compatible with ruby 2.0 check e.g. https://aur.archlinux.org/packages/metasploit/?comments=all This was also mentioned in #metasploit, but seems it's not officially documented. metasploit upstream also only seems to use ruby-1.9.3. I've updated metasploit to latest 4.9.2 in a local cauldron checkout, added ruby-bundler and ruby-activesupport as Requires, but now I'm stuck mith more missing ruby stuff, and seems ruby-bundler is also broken: [doktor5000@Mageia4 SPECS]$ msfconsole Could not find gem 'timecop (>= 0) ruby' in the gems available on this machine. Run `bundle install` to install missing gems. [doktor5000@Mageia4 SPECS]$ bundle install timecop ERROR: bundle install was called with arguments ["timecop"] Usage: "bundle install". [doktor5000@Mageia4 SPECS]$ [doktor5000@Mageia4 SPECS]$ bundle install Bundler::GemfileNotFound Seems our ruby stack is pretty borked to some degree. I leave it to you, if you want me to commit my changes or if you want to take a look yourself.
CC: (none) => doktor5000
Created attachment 5125 [details] svn diff of local cauldron checkout, updated to metasploit frameworks 4.9.2
Hmmm, after installing *a lot* of gems via gem install, including some which we don't have packaged yet, still back to a similar error as initally reported: [doktor5000@Mageia4 metasploit]$ msfconsole There was an error while trying to write to Gemfile.lock. It is likely that you need to allow write permissions for the file at path: /usr/share/metasploit/Gemfile.lock [doktor5000@Mageia4 metasploit]$ sudo msfconsole /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/xml_mini.rb:3:in `require': cannot load such file -- bigdecimal (LoadError) from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/xml_mini.rb:3:in `<top (required)>' from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash/conversions.rb:1:in `require' from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash/conversions.rb:1:in `<top (required)>' from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash.rb:2:in `require' from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash.rb:2:in `<top (required)>' from /usr/share/metasploit/lib/msf/core/module_manager/module_paths.rb:5:in `require' from /usr/share/metasploit/lib/msf/core/module_manager/module_paths.rb:5:in `<top (required)>' from /usr/share/metasploit/lib/msf/core/module_manager.rb:29:in `require' from /usr/share/metasploit/lib/msf/core/module_manager.rb:29:in `<class:ModuleManager>' from /usr/share/metasploit/lib/msf/core/module_manager.rb:21:in `<module:Msf>' from /usr/share/metasploit/lib/msf/core/module_manager.rb:14:in `<top (required)>' from /usr/share/metasploit/lib/msf/core/framework.rb:66:in `require' from /usr/share/metasploit/lib/msf/core/framework.rb:66:in `<class:Framework>' from /usr/share/metasploit/lib/msf/core/framework.rb:13:in `<module:Msf>' from /usr/share/metasploit/lib/msf/core/framework.rb:5:in `<top (required)>' from /usr/share/metasploit/lib/msf/core.rb:34:in `require' from /usr/share/metasploit/lib/msf/core.rb:34:in `<top (required)>' from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `require' from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `<top (required)>' from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `require' from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `<top (required)>' from /usr/share/metasploit/lib/msf/ui.rb:11:in `require' from /usr/share/metasploit/lib/msf/ui.rb:11:in `<top (required)>' from /bin/msfconsole:136:in `require' from /bin/msfconsole:136:in `<main>' I've got a list of the gems and more details available if required.
@Remy: Maybe you could also take a look for the ruby part?
CC: (none) => shikamaru
For some definitive information: ruby-1.9.3 is out of maintenance, it only receives security fixes until next year: https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering Recommended/preferred method of metasploit installation is via rvm, and even latest git wants an older patchlevel of ruby: ruby-1.9.3-p484 So for Mageia 4 and probably even 5 the mageia metasploit package will be unusable. What will we do about this?
I'm dropping metasploit package in cauldron, it's a maintainance nightmare. Unfortunatly, there isn't much to do for mageia 4.
Status: NEW => RESOLVEDResolution: (none) => WONTFIX