安装了新版本的rails,无法识别rails命令

时间:2018-07-18 08:46:20

标签: ruby rbenv

我想创建一个新的Rails应用程序。我安装了ruby 2.4.4,因为我克隆了一个项目。

我曾经为项目设置新版本

const %20d

因为rbenv local无法正常工作

现在我正在使用ruby 2.4.4

rbenv shell 2.4.4

我收到以下错误消息:

  system
  2.3.4
  2.3.5
* 2.4.4 (set by RBENV_VERSION environment variable)

1)我该如何解决? 2)为什么rbenv local不能正常工作?

运行rbenv local 2.4.4会发生什么

rbenv: rails: command not found

The `rails' command exists in these Ruby versions:
  2.3.4
  2.3.5

基本上什么也没发生。仍选择Ruby版本2.3.5。我希望在运行rbenv local 2.4.4之后看到选择的版本2.4.4。我想这与我的ENV有关,我在文件中编写的版本具有首选项,但是我不知道如何解决此问题。

我的.zshrc中有:

 ~/Local_Documents/CodingArea/personal_projects/zaina-project/zaina_deal_room/zaina-dealroom   setup  ruby -v
ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-darwin16]
 ~/Local_Documents/CodingArea/personal_projects/zaina-project/zaina_deal_room/zaina-dealroom   setup  rbenv local 2.4.4
 ~/Local_Documents/CodingArea/personal_projects/zaina-project/zaina_deal_room/zaina-dealroom   setup  ruby -v
ruby 2.3.5p376 (2017-09-14 revision 59905) [x86_64-darwin16]

在那里有红宝石版本是错误的吗?我的路径正确吗? 那么,由于导出RBENV_VERSION对,rbenv local 2.4.4将永远不会应用吗?

1 个答案:

答案 0 :(得分:1)

  

从较高的角度讲,rbenv使用注入到PATH中的shim可执行文件拦截Ruby命令,确定您的应用程序指定了哪个Ruby版本,并将命令传递给正确的Ruby安装。

     

运行诸如ruby或rake之类的命令时,操作系统将在目录列表中搜索以查找具有该名称的可执行文件。该目录列表位于一个名为PATH的环境变量中,列表中的每个目录都用冒号分隔:/usr/local/bin:/usr/bin:/bin

     

一旦rbenv确定了您的应用程序指定了哪个Ruby版本,它将把命令传递给相应的Ruby安装。

     

每个Ruby版本都安装在〜/ .rbenv / versions下的自己的目录中。例如,您可能安装了以下版本:~/.rbenv/versions/1.8.7-p371/

因此,对于每个红宝石版本,您必须安装两个宝石:

gem install bundler
gem install rails

关于如何修复rbenv,您可以在this question中阅读。