我是铁杆上的红宝石和红宝石的新手,如果可能的话,我想要一些澄清。
我目前在我的开发环境中安装了rails 4.2.6
,我在其中构建了一些项目。现在,对于我的新项目,我想使用Rails 5,所以我假设如果我键入gem install rails
命令将获取最新的rails版本并可能将其设置为默认值,因此每次我想创建rails new my_new_project_name
这个项目的新项目将拥有最新版本(目前为v5)。
我的问题是,我的宝石列表是否包含两个rails版本,或者它是否会导致我的旧项目出现任何冲突和问题?所以,如果我想在我的任何具有“旧”版本的项目上工作,不会影响任何更改,对吧?据我所知,bundler
选择每个宝石的版本,对吗?
如果是这样的话,我认为同样的事情适用于我为每个项目使用的每一个宝石,对吗?
答案 0 :(得分:2)
使用同一gem的不同版本时,最好的办法是使用rbenv或RVM为每个项目创建不同的gemsets。这样您可以确保您的项目不会错误地加载另一个版本。
我个人使用RVM,所以我会告诉你如何使用它。
1)从这里安装RVM https://rvm.io
2)确保从主目录(/ home / your_username)加载.bashrc或.bash_profile文件中的RVM。您可以使用以下代码:
export PATH =“$ PATH:$ HOME / .rvm / bin”
[[-s“$ HOME / .rvm / scripts / rvm”]]&&来源“$ HOME / .rvm / scripts / rvm”
3)查看此页面https://rvm.io/workflow/projects并选择您希望如何为项目设置RVM。我个人使用.rvmrc,因为我老了...但不推荐那些因为他们需要信任而且速度较慢。作为替代方案,您可以使用.ruby-version和.ruby-gemset文件。但是你也可以使用.versions.conf。让我们说现在我们选择使用.ruby-version和.ruby-gemset文件。
4)cd进入你的项目并运行这个命令`rvm --ruby-version use 2.3.3@project1 --create'。这将在您的项目中生成这两个文件。每次你进入这个项目时,RVM会自动获取gemset。
5)对第二个项目执行步骤4),但将'project1'替换为'project2'。
6)现在您可以编辑这两个项目的Gemfiles并放置您想要的rails版本。
7)安装每个项目你需要进入该目录并运行命令'gem install bundler'(仅限第一次)然后你可以安全地进行'bundle install'
8)重复7)进行第二个项目。
9)你们都完成了。现在,您在两个不同的宝石集中拥有不同版本的相同宝石。
还要回答其他问题:
1)具有相同gemset的多个版本的同一gem的多个版本可能会导致冲突,尤其是当从终端执行'rails new project'时,因为这不需要特定版本。我建议在您的机器上安装新版本的现有gem之前创建不同的gemset。例如,对于这种特殊情况,我们可以这样做
rvm使用2.3.3@rails5 --create
gem install bundler
gem install rails -v 5.O.0.1
现在我们可以安全地做'铁路新项目'了。这样新版本的rails就在新的gemset中。
我希望这会对你有所帮助:)。
答案 1 :(得分:1)