运行Metasploit时出现json-2.3.0缺失等错误,求解决
解决Metasploit依赖缺失(json-2.3.0)与Bundle执行问题
我来帮你搞定这个Metasploit的依赖问题!你遇到的核心问题其实是两个:一是Metasploit找不到指定版本的json gem,二是执行bundle install时因为目录不对+用root运行导致的报错,下面一步步来解决:
1. 先切换到Metasploit的框架目录
bundle install必须找到项目的Gemfile才能正常工作,而Metasploit的Gemfile在它的专属安装目录里。在Kali Linux中,默认路径是/usr/share/metasploit-framework/,先切换过去:
cd /usr/share/metasploit-framework/
2. 正确执行Bundle安装依赖
提示里说不要用root运行bundle是有道理的——root权限安装的依赖会让非root用户无法正常使用这个应用。如果是Kali默认的root环境,我们可以加参数规避权限问题,同时只安装生产必需的依赖:
bundle install --without development test --no-deployment
如果还是碰到权限报错,再临时用sudo执行(记得这是应急方案,后续尽量用普通用户操作):
sudo bundle install --without development test --no-deployment
3. 手动安装缺失的json-2.3.0 gem
如果bundle安装还是没解决json的问题,可以直接用gem命令指定版本安装:
gem install json -v 2.3.0
要是遇到编译错误(比如提示缺少Ruby开发组件),先装Ruby的开发包再重试:
apt-get install ruby-dev gcc make
4. 关于Gem::ConfigMap的警告
这个警告是因为系统Ruby版本较新,废弃了这个旧常量,暂时不会影响Metasploit的核心功能,等后续Metasploit更新适配新Ruby版本后就会消失,不用太在意。
完成以上步骤后,重新启动Metasploit应该就能正常运行了。
内容的提问来源于stack exchange,提问作者hello world
相关产品推荐
相关产品推荐

