找不到 Gemfile

我当然不是一个 Ruby 开发人员,但是我的服务器上有一个使用 Ruby、 Gems 和 Bundler 的应用程序。我试图安装另一个 Ruby 在一个不同的用户帐户,但在同一个 VPS 上。当我跑步的时候

bundle install

我得到以下错误:

找不到 Gemfile

我可以删除。/bundle 目录,以便重新获取所有 Gems 来清除错误,但是这会对使用相同 Gems 和 Bundler 的其他应用程序产生影响吗?我不想冒险关掉另一个应用。

370868 次浏览

在运行该命令的目录中没有 GemfileGemfile是一个包含 目前程序的 gem设置的文件。

在运行 bundle install之前,确保您在项目目录中。例如,在运行 rails new myproject之后,您将希望在运行 bundle install之前运行 cd myproject

我遇到了同样的问题,通过使用不同的目录解决了这个问题。

bash-4.2$ bundle install
Could not locate Gemfile
bash-4.2$ pwd
/home/amit/redmine/redmine-2.2.2-0/apps/redmine
bash-4.2$ cd htdocs/
bash-4.2$ ls
app  config db   extra  Gemfile   lib  plugins  Rakefile     script  tmp
bin  config.ru  doc  files  Gemfile.lock  log  public   README.rdoc  test    vendor
bash-4.2$ cd plugins/
bash-4.2$ bundle install
Using rake (0.9.2.2)
Using i18n (0.6.0)
Using multi_json (1.3.6)
Using activesupport (3.2.11)
Using builder (3.0.0)
Using activemodel (3.2.11)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.1)
Using rack-cache (1.2)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.2.1)
Using actionpack (3.2.11)
Using mime-types (1.19)
Using polyglot (0.3.3)
Using treetop (1.4.10)
Using mail (2.4.4)
Using actionmailer (3.2.11)
Using arel (3.0.2)
Using tzinfo (0.3.33)
Using activerecord (3.2.11)
Using activeresource (3.2.11)
Using coderay (1.0.6)
Using rack-ssl (1.3.2)
Using json (1.7.5)
Using rdoc (3.12)
Using thor (0.15.4)
Using railties (3.2.11)
Using jquery-rails (2.0.3)
Using mysql2 (0.3.11)
Using net-ldap (0.3.1)
Using ruby-openid (2.1.8)
Using rack-openid (1.3.1)
Using bundler (1.2.3)
Using rails (3.2.11)
Using rmagick (2.13.1)
Your bundle i

我解决了类似的问题,只是退出了项目目录,然后 cd 回到项目目录,捆绑安装。

很简单。当它说“找不到 GemFile”时,意思是在你当前所在的文件夹或目录中,没有一个名为 GemFile 的文件。因此,在命令提示符中给出一个文件名为“ Gemfile”的 there 文件夹的明确路径或完整路径,如 cd C: Users Administrator Desktop RubyProject demo。

一定会在一分钟内解决的。

你可以试试这个。

将其添加到任何用于运行应用程序的配置文件中。

ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
require 'bundler/setup' # Set up gems listed in the Gemfile.
Bundler.require(:default)

Rails 和其他基于 Rack 的应用程序使用这个方案。这种情况有时会发生,你正在尝试运行的东西,有些目录比你的根目录下,你的 Gemfile 通常是位于。 当然,你现在解决了这个问题,但是偶尔我们都会遇到找到 Gemfile 的麻烦。我有时喜欢当你可以拥有你所有的宝石在。捆绑目录。 把这个地址藏在枕头底下总没坏处。 Http://bundler.io/

在我的例子中,我试图在脚本中运行本地签出的 Rails 代码 gem "rails", path: "../rails"

按照 ruby script.rb正常运行脚本会产生错误 Could not locate Gemfile or .bundle/ directory (Bundler::GemfileNotFound)

设置类似于 @ douglasgallen的 Gemfile 路径解决了这个问题

BUNDLE_GEMFILE="../rails" ruby script.rb

我不得不做 touch Gemfile

我的案例是一个 AWS Amazon Linux 实例和 Capistrano 设置 Puma。