gpt4 book ai didi

ruby - 使用 RVM 本地 gemset 和使用 Bundle exec 之间有区别吗?

转载 作者:数据小太阳 更新时间:2023-10-29 09:00:57 26 4
gpt4 key购买 nike

ruby gem 集存在一个根本问题,其中像 rake xxxx 这样的命令可能会产生错误,因为命令可能会使用 rake 的全局版本,而您的 gemfile 需要非常特定的版本。

我知道有 2 种方法可以缓解这种情况。

  1. 在 rake 和 rails 命令前使用 bundle exec。例如 bundle exec rake db:migrate 在前面添加这个确保命令是根据当前包执行的,这意味着当您运行 bundle install 时创建的包。

  2. 使用 RVM。使用 RVM 创建本地 gemset 的方法鲜为人知。在本例中,首先为新应用创建目录 mkdir myappcd myapp 然后运行 ​​rvm use ruby​​-2.3.0@myapp --ruby-version --create 用于创建没有任何内容的本地 gem 集。现在您可以运行 gem install railsrails new . 在您所在的文件夹中创建带有专用 gem 环境的 rails myapp。

每当您自动 cd 到 myapp 目录时,额外的 RVM 将交换到正确的 gemset。

据我所知,这两种方法都有效,但是否存在任何已知问题导致您不使用上述方法之一?

最佳答案

如果您像我一样是 RVM 粉丝,我会为我开始的每个 Rails 项目创建我自己的 gemset。这将使我更容易只使用 rakerails 命令,而无需每次都指定 bundle exec

在分享您的代码时请记住,一些开发人员可能正在使用 rbenv 或者可能根本没有使用 ruby​​ 版本管理器。确保每个人都满意并使用相同版本的 ruby​​ 的一种方法是在项目目录中提供两个附加文件(.ruby-version.ruby-gemset) 并在您的项目中跟踪它们。

.ruby-version 文件将包含您正在使用的 ruby​​ 版本,例如 2.4.1。请注意,这与 RVM 和 rbenv 兼容,并将切换到正确的 ruby​​ 版本。

.ruby-gemset 文件仅由 RVM 识别;因此,切换到您为项目设置的正确 gemset。

这将使您的项目与使用 rbenv 的开发人员兼容,同时仍然让我们这些使用 RVM 的开发人员感到高兴:)

考虑到所有这些注意事项,现在您应该不太关心枯萎的人是否使用 bundle exec 了!

关于ruby - 使用 RVM 本地 gemset 和使用 Bundle exec 之间有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com