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在windows上安装的工头