仅安装 rails gem 版本 5.0.0 后,命令 'rails -v' 打印 'Rails 5.0.1'。为什么?
After installing only rails gem version 5.0.0, the command 'rails -v' prints 'Rails 5.0.1'. Why?
我现在需要坚持使用 Rails 5.0.0。我正在使用带有 rvm 的 gemset (rails500) 和 ruby-2.3.3。我告诉 rvm 使用 gemset 并使用命令 'gem uninstall rails' 从 gemset 中卸载了另一个 Rails 版本 (5.0.1)。之后我使用命令 'gem install rails --version=5.0.0' 来确保我想要的 Rails 在 gemset 中。
现在,当我执行 'rails -v' 时,响应是 'Rails 5.0.1'。为什么不是 'Rails 5.0.0'?当我执行 "gem list | egrep '^rails '" 时,响应是 'rails (5.0.0)'.
相关问题:如何确定rails这个版本不是5.0.0?
请按照此设置所需的 rails 版本:
rvm 与rails 无关。 rvm 用于管理多个 ruby 安装。您的每个 ruby 安装都可以与多个 gem 集相关联。例如,假设您安装了 ruby 1.9.3,并为 ruby 1.9.3 创建了两个 gem 集:gemsetA 和 gemsetB。如果你告诉 rvm 使用 ruby 1.9.3 和 gemsetA,那意味着:
您的 ruby 程序将由 ruby 1.9.3 执行。
您的 ruby 程序可以要求 gemsetA 中的任何 gem(然后允许您的程序使用 gemsetA 中定义的方法(或 类)),但是 gemsetB 中的任何 gems 都不能被你的 ruby 程序看到。
这是一个具体的例子:
~$ rvm list
rvm rubies
ruby-1.8.7-p370 [ i686 ]
* ruby-1.9.3-p194 [ x86_64 ]
=> ruby-2.0.0-p0 [ x86_64 ]
ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~$ rvm use 1.9.3-p194
Using /Users/7stud/.rvm/gems/ruby-1.9.3-p194
.
~$ rvm gem设置列表(这仅列出当前 ruby 版本的 gem 设置)
gem 为 ruby-1.9.3-p194 设置(在 /Users/7stud/.rvm/gems/ruby-1.9.3-p194 中找到)
=>(默认)
全球的
编程
rails3教程
rails4
~$ rvm gem设置使用编程
使用 ruby-1.9.3-p194 和 gemset 编程
在我这样做之后,我的 ruby 程序将由 ruby 1.9.3 执行,并且编程 gem 集中的任何 gem 都可以被要求进入我的 ruby 程序。您可以使用快捷方式一步执行这两个命令:
rvm 使用 ruby 1.9.3-p194@programming
您只需将 ruby 版本和 gem 集与它们之间的“@”组合起来。
$rails-v
Rails 4.0.0
这是因为当前 gem 集包含 rails 4.0.0 的 gem。如果你想看到 $ rails -v 输出 Rails 3.2.14,那么你需要告诉 rvm 切换到包含 rails 3.2.14 的 gemset gem.
但是,您可以让 rvm 自动切换到正确的 rails 版本,并为您的 rails 项目设置 gem。在您的 Gemfile 中,在 ruby 版本后添加注释:
ruby '2.0.0'
ruby-gemset=railstutorial4_gems
然后每当你切换到包含你的rails项目的目录时,rvm会自动将当前的ruby切换到ruby 2.0.0和当前的gem设置到 railstutorial4_gems。如果您从 rails 应用程序中更改目录,rvm 会将当前 ruby 和当前 gem 设置回原来的状态。
我只是一个 rails 初学者,但这里是我用来创建新项目的步骤,直接来自 rails 教程书 (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)
1)
.../rails_projects$ rvm 使用@ --create
例如
.../rails_projects$ rvm 使用 ruby-1.9.3-p194@myapp_gemset --create
2)
.../rails_projects$ gem 安装 rails --version 3.2.14
因为当前 gem 集是 myapp gem 集,所以该命令将 rails 3.2.14 gem 安装到 myapp gem 集。
3)
.../rails_projects$ rails 新 myapp
.../rails_projects$ cd myapp
当前的gem集合仍然是myapp_gemset。
4)
.../rails_projects/myapp$ rails -v
Rails 3.2.14
如果有人想知道以下两个 gem 集到底是什么:
gem 为 ruby-1.9.3-p194 设置(在 /Users/7stud/.rvm/gems/ruby-1.9.3-p194 中找到)
=>(默认)
全球的
rvm 会为您安装的每个 ruby 版本创建这两个 gem 集。安装 ruby 版本后,如果您不为该 ruby 版本创建 gem 设置,并且安装了 gem,则 gem 进入(默认)gem 集。而且,如果您希望所有 gem 集都包含某个 gem,您可以切换到全局 gem 集并在其中安装 gem。
更新:------
为了保持与其他 ruby 版本管理器的兼容性,您可以在不同的文件中而不是在 Gemfile 中为您的项目指定 ruby 版本和 gemset 名称:
$ cd ~/rails_projects/myapp
~/rails_projects/myapp$ echo 2.0.0 > .ruby-版本
~/rails_projects/myapp$ echo myapp_gemset > .ruby-gemset
当您 cd 进入您的项目目录时,您仍将获得相同的自动 ruby 版本和 gem 设置切换。请在此处查看 rvm 文档。
ryanjm 给出了明显的答案
https://github.com/rubygems/rubygems/issues/542
$ gem uninstall railties -v 5.0.1
在
之后是必需的
$ gem uninstall rails -v 5.0.1
我现在需要坚持使用 Rails 5.0.0。我正在使用带有 rvm 的 gemset (rails500) 和 ruby-2.3.3。我告诉 rvm 使用 gemset 并使用命令 'gem uninstall rails' 从 gemset 中卸载了另一个 Rails 版本 (5.0.1)。之后我使用命令 'gem install rails --version=5.0.0' 来确保我想要的 Rails 在 gemset 中。
现在,当我执行 'rails -v' 时,响应是 'Rails 5.0.1'。为什么不是 'Rails 5.0.0'?当我执行 "gem list | egrep '^rails '" 时,响应是 'rails (5.0.0)'.
相关问题:如何确定rails这个版本不是5.0.0?
请按照此设置所需的 rails 版本:
rvm 与rails 无关。 rvm 用于管理多个 ruby 安装。您的每个 ruby 安装都可以与多个 gem 集相关联。例如,假设您安装了 ruby 1.9.3,并为 ruby 1.9.3 创建了两个 gem 集:gemsetA 和 gemsetB。如果你告诉 rvm 使用 ruby 1.9.3 和 gemsetA,那意味着:
您的 ruby 程序将由 ruby 1.9.3 执行。 您的 ruby 程序可以要求 gemsetA 中的任何 gem(然后允许您的程序使用 gemsetA 中定义的方法(或 类)),但是 gemsetB 中的任何 gems 都不能被你的 ruby 程序看到。 这是一个具体的例子:
~$ rvm list
rvm rubies
ruby-1.8.7-p370 [ i686 ]
* ruby-1.9.3-p194 [ x86_64 ]
=> ruby-2.0.0-p0 [ x86_64 ]
ruby-2.0.0-p247 [ x86_64 ]
# => - current
# =* - current && default
# * - default
~$ rvm use 1.9.3-p194
Using /Users/7stud/.rvm/gems/ruby-1.9.3-p194
.
~$ rvm gem设置列表(这仅列出当前 ruby 版本的 gem 设置)
gem 为 ruby-1.9.3-p194 设置(在 /Users/7stud/.rvm/gems/ruby-1.9.3-p194 中找到) =>(默认) 全球的 编程 rails3教程 rails4
~$ rvm gem设置使用编程 使用 ruby-1.9.3-p194 和 gemset 编程 在我这样做之后,我的 ruby 程序将由 ruby 1.9.3 执行,并且编程 gem 集中的任何 gem 都可以被要求进入我的 ruby 程序。您可以使用快捷方式一步执行这两个命令:
rvm 使用 ruby 1.9.3-p194@programming 您只需将 ruby 版本和 gem 集与它们之间的“@”组合起来。
$rails-v Rails 4.0.0 这是因为当前 gem 集包含 rails 4.0.0 的 gem。如果你想看到 $ rails -v 输出 Rails 3.2.14,那么你需要告诉 rvm 切换到包含 rails 3.2.14 的 gemset gem.
但是,您可以让 rvm 自动切换到正确的 rails 版本,并为您的 rails 项目设置 gem。在您的 Gemfile 中,在 ruby 版本后添加注释:
ruby '2.0.0'
ruby-gemset=railstutorial4_gems
然后每当你切换到包含你的rails项目的目录时,rvm会自动将当前的ruby切换到ruby 2.0.0和当前的gem设置到 railstutorial4_gems。如果您从 rails 应用程序中更改目录,rvm 会将当前 ruby 和当前 gem 设置回原来的状态。
我只是一个 rails 初学者,但这里是我用来创建新项目的步骤,直接来自 rails 教程书 (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)
1)
.../rails_projects$ rvm 使用@ --create
例如
.../rails_projects$ rvm 使用 ruby-1.9.3-p194@myapp_gemset --create 2)
.../rails_projects$ gem 安装 rails --version 3.2.14 因为当前 gem 集是 myapp gem 集,所以该命令将 rails 3.2.14 gem 安装到 myapp gem 集。
3)
.../rails_projects$ rails 新 myapp .../rails_projects$ cd myapp 当前的gem集合仍然是myapp_gemset。
4)
.../rails_projects/myapp$ rails -v Rails 3.2.14 如果有人想知道以下两个 gem 集到底是什么:
gem 为 ruby-1.9.3-p194 设置(在 /Users/7stud/.rvm/gems/ruby-1.9.3-p194 中找到)
=>(默认) 全球的 rvm 会为您安装的每个 ruby 版本创建这两个 gem 集。安装 ruby 版本后,如果您不为该 ruby 版本创建 gem 设置,并且安装了 gem,则 gem 进入(默认)gem 集。而且,如果您希望所有 gem 集都包含某个 gem,您可以切换到全局 gem 集并在其中安装 gem。
更新:------
为了保持与其他 ruby 版本管理器的兼容性,您可以在不同的文件中而不是在 Gemfile 中为您的项目指定 ruby 版本和 gemset 名称:
$ cd ~/rails_projects/myapp
~/rails_projects/myapp$ echo 2.0.0 > .ruby-版本 ~/rails_projects/myapp$ echo myapp_gemset > .ruby-gemset 当您 cd 进入您的项目目录时,您仍将获得相同的自动 ruby 版本和 gem 设置切换。请在此处查看 rvm 文档。
ryanjm 给出了明显的答案 https://github.com/rubygems/rubygems/issues/542
$ gem uninstall railties -v 5.0.1
在
之后是必需的$ gem uninstall rails -v 5.0.1