"rails s" 不起作用,但 "bundle exec rails s" 起作用。为什么?
"rails s" doesn't work but "bundle exec rails s" works. Why?
我从 Github 复制了应用程序。使用 rbenv 安装了正确版本的 Ruby。我通过 gem install bundler
和 运行 bundle install --path vendor/bundle
安装了 bundler。所有 gem 都安装在应用程序的 vendor/bundle
目录中。现在我想知道,为什么 rails s
命令不起作用但 bundle exec rails s
起作用?与 rspec
命令相同。这是因为我在 vendor/bundle
目录中安装了 gems 吗?我很困惑。
此外,当我 运行 gem list
我只得到了一些宝石,但 vendor/bundle
目录中有很多宝石。
请告诉我为什么 gem list
命令看不到 vendor/bundle
目录中的 gems 以及为什么我需要 运行 命令和 bundle exec
。谢谢!
使用 bundle exec 命令的目的是 look/search 您想要在当前包中 运行 或在供应商目录中安装 gem 的命令。
如果您 运行ning 较新 rails (v5) 然后查看 binstubs,它复制了 bin 目录中可执行的命令。这样你就可以简单地调用
bin/rails 服务器
这与我们目前拥有的部署解决方案遵循的方法相同。他们创建了一个 .bundle 目录,这样就无需每次都进行捆绑安装。
我从 Github 复制了应用程序。使用 rbenv 安装了正确版本的 Ruby。我通过 gem install bundler
和 运行 bundle install --path vendor/bundle
安装了 bundler。所有 gem 都安装在应用程序的 vendor/bundle
目录中。现在我想知道,为什么 rails s
命令不起作用但 bundle exec rails s
起作用?与 rspec
命令相同。这是因为我在 vendor/bundle
目录中安装了 gems 吗?我很困惑。
此外,当我 运行 gem list
我只得到了一些宝石,但 vendor/bundle
目录中有很多宝石。
请告诉我为什么 gem list
命令看不到 vendor/bundle
目录中的 gems 以及为什么我需要 运行 命令和 bundle exec
。谢谢!
使用 bundle exec 命令的目的是 look/search 您想要在当前包中 运行 或在供应商目录中安装 gem 的命令。
如果您 运行ning 较新 rails (v5) 然后查看 binstubs,它复制了 bin 目录中可执行的命令。这样你就可以简单地调用
bin/rails 服务器
这与我们目前拥有的部署解决方案遵循的方法相同。他们创建了一个 .bundle 目录,这样就无需每次都进行捆绑安装。