【问题标题】:Rails - The system cannot find the path specifiedRails - 系统找不到指定的路径
【发布时间】:2016-02-22 03:31:00
【问题描述】:

我已经使用 railsinstaller 在 Windows 上安装了 Rails 和 Ruby。问题是,当我运行 rails 命令时,它给了我:“系统找不到指定的路径。”

我正在运行 Windows 7 x64 和 Ruby 2.20。

我尝试卸载 Rails 并重新安装;这无济于事。 Ruby 命令执行,如 ruby -v,但 rails -v= 不起作用。

【问题讨论】:

  • 您的要求是什么?你想在你的 windows 机器上安装 ruby​​ on rails 吗?
  • 好吧。我确实安装了它。我希望能够运行它
  • 这个问题让我有机会说“你有一份工作,railsinstaller.org”:)。幸运的是,这个问题及其答案解决了我的问题。

标签: ruby-on-rails ruby windows


【解决方案1】:

进入 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" %*

【讨论】:

  • 这才是正确的答案。 :) 节省了我的时间。 :)
  • @scripter "在某些 .bat 文件中," 我们必须在哪些批处理文件中进行这些更改。我们是否必须在所有批处理文件中进行这些更改,因为我所有的批处理文件都包含上面的代码。
  • 最好这样做。只有几个批处理文件。但是,对 rails.bat 进行更改也可以。
  • @scripter 是对的,它是指定的文件。我花了 5 分钟浏览并粘贴代码,并不太痛苦。
  • RailsInstaller for Ruby 2.3.0 仍然是这种情况。通常,您只需更改bin\rails.batbin\bundle.bat
【解决方案2】:

这是由于 RailsInstaller 中的一个错误,其中两个文件的位置为 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" %*

电子用户是 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 repo 上关注这个问题:https://github.com/railsinstaller/railsinstaller-windows/issues/70

【讨论】:

  • 感谢它为我节省了很多时间
  • 我花了 2 个小时完成了一个复杂的教程,以便在 Xampp 中安装 Redmine。不是我对新语言最好的体验。 rails -v 活蹦乱跳。我还活着……谢谢!
  • 在 Win 10 上也为我工作
【解决方案3】:

解决方案在railsinstaller的github问题上指定-https://github.com/railsinstaller/railsinstaller-windows/issues/73

【讨论】:

  • 是的,看起来这是 Rails 安装程序的构建问题,导致 ruby​​.exe 路径损坏。您可能不需要全部修复它们,但受影响的 BAT 文件有:bundle.bat、bundler.bat、erubis.bat、nokogiri.bat、rails.bat、sprockets.bat、swlite3_ruby.bat、tilt.bat
【解决方案4】:

我在Sublime Text中打开C:\RailsInstaller\Ruby2.2.0\bin下所有.bat文件,替换为Ctrl+Shift+F

这个
@"C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.exe"
有了这个
@"%~dp0ruby.exe"
在所有匹配的文件中。

只花了几秒钟。这可能会帮助那些在我之后偶然发现它并且被对多个文件执行查找和替换的想法吓倒的人。

【讨论】:

    【解决方案5】:

    我在我的 Windows 机器上解决了这个问题

    1. gem 安装捆绑器
    2. 捆绑器安装
    3. 1 号和 2 号解决了问题并安装了所有 gem。

    【讨论】:

    • 这会重新生成所有具有正确路径的 gems 到 ruby​​.exe。
    【解决方案6】:

    我已经创建了一种超级简单的方法来使用Windows Powershell 执行@JayantBhawal 的解决方案(对我来说非常好),因为这似乎是 Windows 机器独有的问题。它看起来很复杂,但实际上它所做的只是用 .bat 文件中的 %~dp0ruby.exe 替换所有 C:\Users\emachnic\GitRepos\railsinstaller-windows\stage\Ruby2.2.0\bin\ruby.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

    【讨论】:

    • 这是一个很好的解决方案!按 Win + R 然后输入“powershell”回车。上面的代码效果很好,但在我写这篇文章时,Ruby 的当前版本是 2.3.0。所以正确的脚本是 Get-ChildItem 。 -过滤器 *.bat | Foreach-对象 { (获取内容 $_.name ) | ForEach-Object { $_ -replace "C:\\Users\\emachnic\\GitRepos\\railsinstaller-windows\\stage\\Ruby2.3.​​0\\bin\\ruby.exe", "%~dp0ruby.exe" } |设置内容 $_.name}
    【解决方案7】:

    几天前我遇到了这个问题。在 Windows 上多次运行 Rails 后,突然间玩了 cmd 命令提示符,更改命令背景和文本颜色或同时打开多个命令提示符窗口,然后尝试运行命令 'rails server' 'rails new App' 或 'bundle install' 你会得到消息“系统找不到指定的路径”

    我通过运行以下命令解决了这个问题: 'gem install _____'(在该行中填写:'bundle'、'bundler' 和 'byebug'),它们是三个 .bat 文件的名称(使用每个 .bat 文件名一次运行该命令)。一旦你这样做了,测试它!尝试创建一个新的应用程序,捆绑安装和 Rails 服务器。它对我有用。

    【讨论】:

      【解决方案8】:

      我遇到了同样的问题,在命令提示符下运行gem install rails 就可以了。

      问候, T.S.

      【讨论】:

        【解决方案9】:

        我之前在研究相同问题时发现了您的问题,我只是为自己修复了它(Windows 8.1),所以我想我会回答它。我试图使用 RailsInstaller 在 Windows 8.1 上运行 Ruby 2.2。我现在可以运行 Ruby 和 Rails,尽管是旧版本。我认为这是 64 位架构与 32 位架构的问题,后者似乎运行良好。我是这样做的:

        1. 首先,阅读this blog post 看看这是否能解决您的问题,尽管我认为不会。我使用regedit.exe 来查找有问题的 AutoRun 实例。我没有,所以我尝试了下一步。

        2. 卸载 Ruby 2.2 版本的 RailsInstaller(进入您的 control panel > programs and features 然后卸载 RailsInstaller

        3. 然后,安装 1.9.3 版本。转到 here 和 CTRL+F "1.9" 以找到 RailsInstaller 的 Ruby 1.9.3 版本。

        4. 安装后,请确保运行 gem update --system 以更新所有 gem。在我进行 gem 更新之前,我无法运行 rails new。现在一切正常。

        因此,您将使用稍旧的 Ruby 版本,但一切都应该可以正常工作。这个解决方案对我有用,我希望它对你有用。

        【讨论】:

        • 谢谢,但我已经修好了。问题出在 rails.bat 或类似文件中指定的路径中。我相信它是暂时的,直到 railsinstaller 的作者修复它。它在 github 上的问题中。
        • @Severus 你有链接吗
        • @GeorgeEdwards,是的 - github.com/railsinstaller/railsinstaller-windows/issues/73 希望,这会有所帮助。
        【解决方案10】:

        我相信上述问题的解决方法非常简单。

        问题正在发生,因为在安装目录中,您拥有的批处理采用默认路径。例如,假设您正在运行以下命令: 捆绑安装 现在为了执行这个命令,你的包批处理文件应该被正确配置。默认情况下,批处理文件的结构类似于以下结构:

        @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 因此上述捆绑文件应配置如下:

        @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" %
        

        这样就解决了上面的问题。

        上述解决方案应该适用于我们在运行命令时遇到问题的任何地方。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-23
          • 2018-12-12
          • 2016-04-23
          • 2017-01-04
          • 2014-04-24
          • 2017-03-03
          相关资源
          最近更新 更多