我是Ruby和Rails的新手,我的Rails安装无法在CLI中运行,因为它在错误的地方寻找Ruby。
TLDR问题-我如何将Rails指向我的Ruby安装?
下面是我运行的命令和它的输出。它在错误的目录中查找ruby。
$ rails -v
/c/Users/<username>/AppData/Local/Microsoft/WindowsApps/rails: line 6: /c/Users/<username>/AppData/Local/Microsoft/WindowsApps/ruby: No such file or directory
我正在使用rubyinstaller-devkit-3.2.2-1-x64
上的ruby安装。安装完成后,我使用gem install rails
命令安装了rails。我一直关注Rails社区的installation instructions,直到检查我安装的版本。
我做了一些搜索,了解到.bat
文件可以定义rails在哪里查找ruby或其他软件包,并且它们可以独立运行。我可以像这样运行rails.bat
,得到以下结果:
$ ~/AppData/Local/Microsoft/WindowsApps/rails.bat -v
Rails 7.0.7.2
所以我打开rails.bat
,它包含了
@ECHO OFF
@ruby.exe "%~dpn0" %*
我阅读了批处理文件及其语法,并编辑了rails.bat
,以便可以看到正在运行的命令。以下是该实验的输出:
$ ~/AppData/Local/Microsoft/WindowsApps/rails.bat -v
C:\Users\<username>\workspace\ruby-work>ruby.exe "C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\rails" -v
Rails 7.0.7.2
在搜索时,我看到Rails用户对某些安装程序硬编码的路径不正确感到非常震惊,但我在这里没有看到硬编码。此外,他们似乎通过纠正相关的.bat
文件来解决问题(这是针对旧版本的Rails和Ruby)。但是,当我编辑我的.bat
文件,并重新运行rails -v
时,我得到了相同的输出-它总是在同一个目录中查找,无论我在.bat
文件中定义了什么路径。
如何将Rails指向包含我的ruby安装的目录?
最后,这里是一些版本和位置信息,我希望是有帮助的。我在Windows 10上运行。
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x64-mingw-ucrt]
$ gem -v
3.4.10
$ which ruby
/c/Ruby32-x64/bin/ruby
$ which rails
/c/Users/<username>/AppData/Local/Microsoft/WindowsApps/rails
$ ~/AppData/Local/Microsoft/WindowsApps/rails.bat -v
Rails 7.0.7.2
编辑:注意上面的命令是在bash shell中发出的。回顾我的PATH,我看到的唯一与Ruby相关的包含是这个。
C:\Ruby32-x64\bin;
到目前为止,我还没有定义任何与Ruby开发相关的环境变量。
2条答案
按热度按时间nnvyjq4y1#
根据@Casper的建议,我打开了
/c/Users/<username>/AppData/Local/Microsoft/WindowsApps/rails
文件,看看编辑它是否有帮助。在里面,我发现了下面的代码片段,它似乎是针对ruby可执行文件的:通过像这样更改
bindir
的值,我可以通过命令行成功运行rails命令:bindir="C:/Ruby32-x64/bin"
这里的缺点是,每当我需要更新或更改Ruby的版本时,我都需要手动更新此路径。这感觉更像是一个解决方案,但它让我开始运行。
at0kjp5o2#
问题可能是
rails.bat
文件被硬编码为在C:\Users\<username>\AppData\Local\Microsoft\WindowsApps
目录中查找Ruby。您可以通过编辑rails.bat
文件并更改Ruby安装路径来修复此问题。找到
rails.bat
中的一行,它说:更改Ruby安装的路径,如下所示:
现在,当您运行
rails -v
命令时,它应该能够找到您的Ruby安装并打印版本号。或者,您需要检查PATH环境变量是否包含Ruby安装的正确路径。