我已经使用railsinstaller在Windows上安装了Rails和Ruby。问题是,当我运行rails命令时,它会显示:"系统找不到指定的路径"。
我正在运行Windows 7 x64和Ruby 2.20。
我尝试卸载Rails并再次安装,但没有帮助。像ruby -v
这样的Ruby命令可以执行,但rails -v=
无法工作。
我已经使用railsinstaller在Windows上安装了Rails和Ruby。问题是,当我运行rails命令时,它会显示:"系统找不到指定的路径"。
我正在运行Windows 7 x64和Ruby 2.20。
我尝试卸载Rails并再次安装,但没有帮助。像ruby -v
这样的Ruby命令可以执行,但rails -v=
无法工作。
进入 C:\RailsInstaller\Ruby2.2.0。在一些 .bat 文件中,你会找到以下内容:
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe" "C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.2.0/bin/tilt" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe" "%~dpn0" %*
删除它,然后粘贴下面的文本:
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@"%~dp0ruby.exe" "%~dpn0" %*
bin\rails.bat
和bin\bundle.bat
即可。 - John Isaiah Carmona这是由于 RailsInstaller 中的一个 bug,导致两个文件中的 ruby.exe
位置被硬编码,只适用于 RailsInstaller 开发者的机器。在 C:\RailsInstaller\Ruby2.2.0\bin\rails.bat
(这是默认安装文件夹,如果你选择了不同的安装文件夹,你的 rails.bat
可能在别处)中,您会找到以下两行:
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe" "C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.2.0/bin/rails" %1 %2 %3 %4 %5 %6 %7 %8 %9
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe" "%~dpn0" %*
emachnic用户是RailsInstaller的开发人员。作为一种解决方法,您可以将这些文件夹更改为计算机上的文件夹。对于默认安装文件夹,您需要将这些更改为:
@"C:\RailsInstaller\Ruby2.2.0\bin\ruby.exe" "C:\RailsInstaller\Ruby2.2.0\bin\rails" %1 %2 %3 %4 %5 %6 %7 %8 %9
@"C:\RailsInstaller\Ruby2.2.0\bin\ruby.exe" "%~dpn0" %*
你还需要在 C:\RailsInstaller\Ruby2.2.0\bin\bundle.bat
中重复这两行类似代码的修改。
运行 rails -v
来验证 Rails 是否能正常工作。
你可以在他们的 Git 存储库中关注此问题:https://github.com/railsinstaller/railsinstaller-windows/issues/70
rails -v
运行正常。我还活着...谢谢! - Adrian Moisa解决方案在railsinstaller的github问题中有详细说明 - https://github.com/railsinstaller/railsinstaller-windows/issues/73
我在我的Windows机器上解决了这个问题,做法如下:
.bat
文件,并使用 Ctrl+Shift+F
进行替换,将所有文件中匹配的@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe"
@"%~dp0ruby.exe"
C:\ Users \ emachnic \ GitRepos \ railsinstaller-windows \ stage \ Ruby2.2.0 \ bin \ ruby.exe
实例替换为%〜dp0ruby.exe
。只需打开PowerShell,cd到C:\ RailsInstaller \ Ruby2.3.0 \ bin
,并复制此小脚本:Get-ChildItem . -Filter *.bat | Foreach-Object {
(Get-Content $_.name ) | ForEach-Object {
$_ -replace "C:\\Users\\emachnic\\GitRepos\\railsinstaller-windows\\stage\\Ruby2.2.0\\bin\\ruby.exe", "%~dp0ruby.exe"
} | Set-Content $_.name}
在按下回车键后,您应该会发现所有该字符串的实例都已被替换。祝好运!
编辑:更新版本2.2.0 -> 2.3.0
gem install rails
就可以解决。我相信上述问题的解决方案非常简单。
问题发生的原因是在安装目录中,您拥有的批处理文件正在采用默认路径。例如,假设您正在运行以下命令: bundle install 现在,为了执行此命令,您的捆绑批处理文件应该被正确配置。默认情况下,批处理文件将具有以下结构:
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.3.0\bin\ruby.exe"
"C:/Users/emachnic/GitRepos/railsinstaller-windows/stage/Ruby2.3.0/bin/bundle" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.3.0\bin\ruby.exe" "%~dpn0" %
对于我来说,Rails已安装在C盘: C:\RailsInstaller\Ruby2.3.0\bin,因此上述bundle文件应该配置如下:
@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"C:/RailsInstaller/Ruby2.3.0/bin/ruby.exe"
"C:/RailsInstaller/Ruby2.3.0/bin/bundle" %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO :EOF
:WinNT
@"C:/RailsInstaller/Ruby2.3.0/bin/ruby.exe" "%~dpn0" %
这将解决上述问题。
无论何时我们遇到运行命令的问题,都应该应用上述解决方案。
我在研究同样的问题时发现了你的问题,我刚刚为自己解决了这个问题(Windows 8.1),所以我想回答一下。我试图在使用RailsInstaller的Windows 8.1上运行Ruby 2.2。我现在能够运行Ruby和Rails,尽管是旧版本。我认为这是64位架构与32位架构之间的问题,后者似乎可以正常运行。以下是我的做法:
所以,你将使用一个稍旧的Ruby版本,但一切应该正常工作。这个解决方案对我有效,希望对你也有效。