heroku toolbelt 断轨

Posted

技术标签:

【中文标题】heroku toolbelt 断轨【英文标题】:heroku toolbelt breaks rails 【发布时间】:2012-06-25 02:01:30 【问题描述】:

我正在学习rails,我正在尝试让heroku 启动并运行。但是,当我安装 heroku 工具带时,会产生许多错误。如果我尝试运行任何 rails 命令,我会得到如下信息:

C:\Users\Ezra\Desktop\Sites\demo_app>rails -v 
C:/Program Files (x86)/ruby-1.9.3/lib/ruby/site_ruby/1.9.1/rubygems.rb:926:in `r
eport_activate_error': Could not find RubyGem railties (>= 0) (Gem::LoadError)
    from C:/Program Files (x86)/ruby-1.9.3/lib/ruby/site_ruby/1.9.1/rubygems
.rb:244:in `activate_dep'
    from C:/Program Files (x86)/ruby-1.9.3/lib/ruby/site_ruby/1.9.1/rubygems
.rb:236:in `activate'
    from C:/Program Files (x86)/ruby-1.9.3/lib/ruby/site_ruby/1.9.1/rubygems
.rb:1307:in `gem'
    from C:/RailsInstaller/Ruby1.9.3/bin/rails:18:in `<main>'

此外,运行 ruby​​ -v 会给我 ruby​​ 1.9.2p290,即使我安装了 ruby​​ 1.9.3。在尝试解决这个问题时,我发现卸载 ruby​​ 1.9.2p290 会导致我的 ruby​​ 版本简单地恢复到 1.9.3p125,但这样做之后 heroku 不再工作:

C:\Users\Ezra\Desktop\Sites\demo_app>heroku login
'"C:\Program Files (x86)\ruby-1.9.3\bin\ruby.exe"' is not recognized as an inter
nal or external command, operable program or batch file.  

安装heroku toolbelt后的gem环境:

RubyGems 环境:

RubyGEMS 版本:1.7.2 RUBY 版本:1.9.2(2011-07-09 补丁级别 290)[i386-mingw32] 安装目录:C:/Program Files (x86)/ruby-1.9.3/lib/ruby/gems/1.9.1 RUBY 可执行文件:“C:/Program Files (x86)/ruby-1.9.3/bin/ruby.exe” 可执行目录:C:/Program Files (x86)/ruby-1.9.3/bin RUBYGEMS 平台: 红宝石 x86-mingw32 宝石路径: C:/Program Files (x86)/ruby-1.9.3/lib/ruby/gems/1.9.1 C:/Users/Ezra/.gem/ruby/1.9.1 宝石配置: :update_sources => 真 :详细 => 真 :基准 => 假 :回溯 => 假 :bulk_threshold => 1000 远程源: http://rubygems.org/

卸载ruby1.9.2p290后的Gem环境:

RubyGems 环境:

RUBYGEMS 版本:1.8.16 RUBY 版本:1.9.3(2012-02-16 补丁级别 125)[i386-mingw32] 安装目录:C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1 RUBY 可执行文件:C:/RailsInstaller/Ruby1.9.3/bin/ruby.exe 可执行目录:C:/RailsInstaller/Ruby1.9.3/bin RUBYGEMS 平台: 红宝石 x86-mingw32 宝石路径: C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1 C:/Users/Ezra/.gem/ruby/1.9.1 宝石配置: :update_sources => 真 :详细 => 真 :基准 => 错误 :回溯 => 假 :bulk_threshold => 1000 远程源: http://rubygems.org/

我正在运行 Windows 7,但我没有使用 rvm,因为 cygwin 让我哭了。 任何和所有建议将不胜感激。

【问题讨论】:

没有在 Windows 上工作,但是你的日志中的 ruby​​ 可执行文件 C:/Program Files (x86)/ruby-1.9.3/bin/ruby.exe 不再存在,因为你说你卸载了它从那里。你是怎么卸载的? 【参考方案1】:

这里也是一个新手,试图让 heroku 运行起来。我今天遇到了完全相同的问题,首先是“找不到 RubyGem railties”问题,然后在卸载 Ruby 1.9.2 后,heroku 的问题不再工作了。我找到了 2 种解决方法,但不确定其中一种是否很棒。

不要卸载工具带附带的 ruby​​ 版本。相反

(1):将其从 PATH 中删除。对我来说,工具带安装将 c:\program files\ruby1.9.3 添加到我的 PATH 系统变量中。我的 user PATH 变量中已经有 c:\ruby193(我之前自己安装了 ruby​​)。在从 PATH 中删除工具带添加的那个之后,事情开始工作了。 (注意:c:\ruby193 应该放在 c:\program files\heroku\bin int PATH 系统变量之前,否则它将不起作用)

(2):或者,我将 c:\ruby193 从我的 user PATH 移动到我的 system PATH。重新安装工具带,现在 ruby​​ 和 heroku 都可以工作了。但我的 PATH 变量中确实有两个版本的 ruby​​。

不确定这两种方法是否很好,因为我怀疑我现在安装了两个版本的 ruby​​,并且根据我正在做的事情被使用。但至少让我继续解决下一个问题,现在我一直在尝试安装 heroku 插件。

我认为 ruby​​ on rails 应该让事情变得简单。尝试配置 30 种不同的新工具已经 4 天了(结束咆哮)

【讨论】:

谢谢!我知道你的意思...尝试调试所有内容很痛苦。【参考方案2】:

我放弃了 Heroku Toolbelt(卸载 Heroku 以及随附的 Ruby 1.9.2 运行时)并改用 gem:

gem install heroku
gem install foreman

【讨论】:

【参考方案3】:

我建议你在 ruby​​ on rails 开发中使用 linux,我之前在 window 中开发过,它有很多你无法解决的问题(超出你的范围)。此外,当您使用某些 gem 时,某些 gem 配置在您在窗口中时也会有所不同。更改为 linux shld 帮助您更好地进行 ruby​​ on rails 开发:)

【讨论】:

【参考方案4】:

瑞维亚娜你的回答很好,但是,

您应该担心安装了两个版本的 ruby​​。我是初学者,但我听说这会导致以后严重的头痛。

由于 Herokubelt 安装了额外版本的 ruby​​(1.9.2),我将从您的用户路径 (Path) 和系统路径 (PATH) 中删除它。然后卸载 ruby​​(1.9.2)。

当我这样做时,rails(1.9.3) 和 heroku 腰带仍在工作。 我在带有 rails 1.9.3 的 Windows 7 上

【讨论】:

【参考方案5】:

在 Windows 上,我删除了 Ruby 1.9.2(Heroku 已安装)并编辑了 heroku.bat 中的路径以指向现有的 Ruby1.9.3

就我而言,它变成了:

:x64
set HerokuRubyPath=C:\RailsInstaller\Ruby1.9.3
goto launch

【讨论】:

【参考方案6】:

这可能与可执行文件有关... 当我输入时:

which heroku

输出是:

/usr/bin/heroku

你应该把它放在你的 $PATH 中

...   :/usr/bin:  ...

heroku gem 已弃用,因此请下载“heroku toolbelt”

【讨论】:

以上是关于heroku toolbelt 断轨的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 10 上安装 Heroku Toolbelt

Heroku toolbelt 命令需要应用程序名称

找不到由heroku toolbelt在windows上安装的工头

有没有办法为 Heroku Toolbelt 设置默认应用程序?

尝试在本地计算机上检查 Heroku 版本时出错

如何用heroku和mLab部署项目(Nodejs项目)