ruby gem set存在一个基本问题,像rake xxxx这样的命令可能会产生错误,因为命令可能使用rake的全局版本,而gemfile需要非常特定的版本。使用RVM本地gemset和使用Bundle exec是否有区别?
我知道2种方法来缓解这种情况。
在rake和rails命令前面使用
bundle exec
。例如bundle exec rake db:migrate
在前面添加此命令可以确保命令是以当前捆绑包的形式执行的,即当您运行bundle install
时创建的捆绑包。使用RVM。使用RVM创建本地gemset的方式比较少见。首先,在这种情况下,为您的新应用创建目录
mkdir myapp
,cd myapp
,然后运行rvm use [email protected] --ruby-version --create
创建没有任何内容的本地宝石集。现在你可以运行gem install rails
和rails new .
创建的myapp轨道与它的你在文件夹中的专用宝石环境。
由于不错的额外RVM将每次CD自动MYAPP目录时交换到正确的宝石。
至于据我所知这两种方法的工作,但有没有任何已知的问题,为什么你不会使用上述方法之一?