我已经部分成功安装了 Metasploit 框架,但是当我尝试运行 Metasploit 控制台(msfconsole)时,它返回错误:
/usr/local/bin/msfconsole:23:in `require': no such file to load -- /usr/local
/bin/config/boot (LoadError) from /usr/local/bin/msfconsole:23
我已经尝试修复这个问题,并在网上搜索了好几天,但都没有成功。这开始变得非常令人沮丧。
答案1
他们打破了 Ruby 的现代版本提交 149c3ecc63bfe8bb261b47ccc783cd9f728692e5我的理解是,这与 ruby 处理其路径和加载要求的方式的变化有关。
这是一个快速而肮脏的破解方法,直到他们在上游修复它:
diff --git a/msfconsole b/msfconsole
index 9dee479..c3769bb 100755
--- a/msfconsole
+++ b/msfconsole
@@ -20,7 +20,8 @@ require 'pathname'
#
# @see https://github.com/rails/rails/blob/v3.2.17/railties/lib/rails/generators/rails/app/templates/script/rails#L3-L5
-require Pathname.new(__FILE__).expand_path.parent.join('config', 'boot')
+#require Pathname.new(__FILE__).expand_path.parent.join('config', 'boot')
+require_relative 'config/boot'
require 'metasploit/framework/command/console'
Metasploit::Framework::Command::Console.start
答案2
由有问题的 OP 回答。
这与 ruby 无关。我打开了 msfconsole 文件,发现有一个无效的“require”路径。
答案3
我重新安装了 Ubuntu 12.04 和 Metasploit,并确保只有一个 ruby 版本 (ruby-core)。我启动了它,它运行得很好。