【问题标题】:Bundler::GemfileNotFound whenever I try to run bundle installBundler::GemfileNotFound 每当我尝试运行 bundle install
【发布时间】:2013-07-09 03:58:10
【问题描述】:

我正在使用 kali-linux(一个 Linux 发行版女巫是 Back-Track 的延续,基于 Ubuntu,只是现在基于 Debian wheezy)进行一些渗透测试。一切正常,直到我决定更新我的系统工具。现在,每当我尝试运行基于 ruby​​ 的工具时,它都会困扰我:

Could not find gem 'ruby-progressbar (>= 1.1.0) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.

我继续运行bundle install,但随后出现Bundler::GemfileNotFound 错误。

Kali 默认使用 ruby​​,用于使用 gems。该软件不“需要”任何其他软件包,但 ruby​​ 似乎没有针对手头的问题完全配置/安装。

$ ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [i486-linux]
$ rvm
bash: rvm: command not found
$ rbenv
bash: rbenv: command not found

【问题讨论】:

  • ruby -v 是检查 ruby​​ 版本的一种稍微简单的方法。

标签: ruby bundler


【解决方案1】:

我在尝试bundle install 时遇到了同样的问题,却没有意识到我不在项目目录中。确保您位于当前项目目录中。

【讨论】:

  • 主啊,我一直以为捆绑就是捆绑。不依赖于任何东西。现在我搬到了我的应用程序目录,这很好。哈哈
【解决方案2】:

为避免此错误,您应该在应用程序的根目录下创建 GemFile 并在其中指定所需的所有 gem,然后运行 ​​bundle install

【讨论】:

  • 我认为这就是我最后所做的,检查我的答案。
  • @SachinSingh 是正确的。虽然这可行,但我强烈建议使用 ruby​​ 版本管理器,然后针对给定版本的 ruby​​ 安装 bundler。当你想安装另一个版本的 ruby​​ 时,你会做噩梦。
  • @MattDressel 我知道你给了我一个很好的建议,但考虑到我最终不会为 Ruby 开发,我只是想使用最终工具(虽然看起来是一种有趣的语言) .
【解决方案3】:

问题在于,出于某种奇怪的动机,Ruby 没有检测到 bundler 已安装,尽管包管理器这么说。

$ apt-cache policy bundler
  bundler:
Installed: 1.3.5-2
Candidate: 1.3.5-2
$ bundle --version
Bundler::GemfileNotFound

我只是在工具根路径中以 root 身份运行 gem install bundler 然后 bundler install,一切都像魅力一样工作。

【讨论】:

    【解决方案4】:

    您使用rvm 还是rbenv?如果是这样,请确保您使用的是特定的 ruby​​ 版本。

    对于 rvm,rvm list 并在您的 ruby​​ 版本旁边查找指示。如果未列出正确的,请运行rvm install x.y.z。如果没有选择正确的,运行rvm use x.y.z

    如果您想为给定项目分离 Gem,请创建一个 gemset。否则,你应该很高兴。

    运行gem install bundler。您不必以 sudo 的身份执行此操作。这将在默认 rvm gemset 或选定的 gemset 中安装 bundler。

    Bundler 现在应该可用并且可以使用bundle 运行。这与bundle install 相同。

    【讨论】:

    • @Braiam 您肯定想使用 ruby​​ 版本管理器,否则您将继续做噩梦。我通常使用rvm,但我知道rbenv 也很受欢迎。
    • @Braiam 此外,您可以将BUNDLE_GEMFILE 添加为指向任意 Gemfile 路径的环境变量。
    • 我知道这是一个有用的答案。但考虑到想要使用 Ruby 的工具是以 root 身份安装的(如果不是 root,其中一些将不会运行)所以,我确信使用 sudo 是强制性的,有一种方法可以恢复这个并且检查?
    【解决方案5】:

    试试这个:

    sudo ln -s /var/lib/gems/1.8/bin/bundle /bin/bundle
    sudo ln -s /var/lib/gems/1.8/bin/bundler /bin/bundler
    

    在 debian 中为我工作。

    【讨论】:

      猜你喜欢
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      相关资源
      最近更新 更多