【问题标题】:"rails s" doesn't work but "bundle exec rails s" works. Why?“rails s”不起作用,但“bundle exec rails s”起作用。为什么?
【发布时间】:2017-05-24 09:32:02
【问题描述】:

我从 Github 复制了该应用程序。使用 rbenv 安装了正确版本的 Ruby。我通过gem install bundler 安装了bundler 并运行bundle install --path vendor/bundle。所有 gem 都安装在应用程序的 vendor/bundle 目录中。现在我想知道,为什么rails s 命令不起作用但bundle exec rails s 起作用?与rspec 命令相同。这是因为我在vendor/bundle 目录中安装了 gems 吗?我很困惑。

另外,当我运行gem list 时,我只得到一些宝石,但vendor/bundle 目录中有很多宝石。

请告诉我为什么gem list 命令看不到来自vendor/bundle 目录的gem,以及为什么我需要使用bundle exec 运行命令。谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby rubygems bundler


    【解决方案1】:

    使用 bundle exec 命令的目的是查找/搜索要在当前捆绑包中运行的命令或在供应商目录中安装的 gem。

    如果您运行的是较新的 rails (v5),请查看 binstubs,它复制了 bin 目录中可执行的命令。这样您就可以简单地调用

    bin/rails 服务器

    这与我们目前拥有的部署解决方案所遵循的方法相同。他们创建了一个 .bundle 目录,无需每次都进行捆绑安装。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多