我想创建一个新的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将永远不会应用吗?
答案 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中阅读。