【发布时间】:2016-03-17 06:32:33
【问题描述】:
我有一个 Ruby 脚本,当我在 shell 中运行时它可以工作(作为用户):
/home/user/wpscan/$ ruby ./wpscan.rb -u www.mysite.com
但是,我想使用我用 Python 创建的函数自动执行此操作。这是python脚本:
#!/usr/bin/python
import os
wpscan_env = "/wpscan/"
os.chdir(os.environ['HOME'] + wpscan_env)
os.system("ruby ./wpscan.rb -u www.mysite.com")
请注意,Python 脚本位于不同的文件夹 home/user/python/first.py,这就是我执行 os.chdir() 函数的原因。当我回到 shell 并输入:
/home/user/python/$ python first.py
这是我得到的输出:
在任何来源中都找不到 addressable-2.4.0
运行 `bundle install` 来安装缺失的 gem。
我使用的是 Ubuntu 14.04,为了让 wpscan 正常工作,它要求我安装 Ruby 2.3.0。我是通过 RVM 完成的。
wpscan.rb 有一些依赖项,它似乎没有实例化它们。另外,如果我在 wpscan 文件夹中并执行 ruby ./wpscan.rb ... 它将起作用。但是,如果我尝试从主目录执行此操作:ruby wpscan/wpscan.rb ... 它会引发错误:
[ERROR] 无法加载此类文件 --typhoeus
[提示] 尝试运行“gem install typhoeus”或“gem install --user-install typhoeus”。如果仍然出现错误,请查看 README 文件或https://github.com/wpscanteam/wpscan
我对 Ruby 一无所知,这是我的第一个真正的 Python 脚本,我在 2 晚前刚刚安装了 wpscan。我在这里已经脱离了我的联盟,我需要帮助。任何进一步的问题都可以根据请求详细说明。
【问题讨论】:
-
尝试运行
bundle install或类似gem install addressable --version 2.4.0的东西 -
如果我在 shell 中执行该命令,它可以工作并且不会向我显示此错误。我还应该尝试吗?
-
如果您在没有 Python 的情况下也无法运行 Ruby 命令,例如得到同样的错误,那么这几乎不是任何 Python 问题
-
不,我想你误会了。
ruby ./wpscan.rb -u ...在外壳中工作。但在 Python 中,它会输出错误。 -
您是否在每个目录的基础上指定 ruby / gemset 版本?确保您不会意外使用不同的 ruby 版本(需要为每个版本重新安装 gem)。如果您的 root 用户有不同的 ruby 版本(这是常见且预期的),也可以尝试
sudo gem install。
标签: ruby