1

基本的,我想,更多的修辞问题是为什么 RoR 安装/维护变得如此 F%#$ing 复杂?

问题的一些背景: 平台:Windows XP Ruby 版本:1.8.6 使用 gem 版本 1.2.0 安装的几十个 gem 当前 Rails 版本:2.1

我只是想更新到 rails 2.3.5,认为我有一个适度的愿望,但显然不是。我的挣扎:

  1. 运行 'gem update rails --include-dependencies' (收到消息说不再支持此选项(为什么不支持?),但更新持续了一段时间)

  2. 错误提示“actionpack”依赖于“rack”gem(需要 v 1.0.0)。

  3. 好的,运行“gem install rack” - 机架 1.1.0 已安装

  4. 重新运行“gem install rails”,但遇到了同样的问题。以为它可能不喜欢 rack 1.1.0... 好吧,找到 1.0.0 版本,下载它,卸载 v. 1.1.0,安装 v. 1.0.0

  5. 再次运行 gem install rails,现在 rails 已安装

  6. 运行'rails app-name'来创建我的应用程序,得到一些连续的错误,这个或那个gem丢失了。我去的时候安装了它们

  7. 到了缺少'fcgi'gem的地步,找不到编译版本,读到将rubygem版本从1.2(buggy)更新到1.3.5可能会更好

  8. 好的,开始更新rubygem。到了无法完成 1.3.5 版本安装的地步,因为缺少 gemcutter gem 。
  9. 尝试安装 gemcutter 并抱怨它需要 ruby​​gems 1.3.5!
  10. ...顺便说一句,“rails my-app”仍然会产生 fcgi gem 丢失的错误

不是坚果吗?!

我希望我的经历不是独一无二的,也许有人可以在这里帮助我。提前致谢!

4

4 回答 4

2

我怀疑问题在于您正在使用 Ruby 的 One-Click Installer 发行版,它现在已经非常过时了。请改用RubyInstaller,它取代了 OCI 并解决了许多 Ruby on Windows 问题。

RubyInstaller 包含当前版本的 RubyGems,并且该项目还提供了一个名为 DevKit 的可选编译器,它可以使 gem 包中包含的任何本机扩展正确编译。RubyInstaller 被标记为候选版本,因为还有一些调整可以改善用户体验,但我发现它功能齐全且稳定。

--include-dependencies 行为现在是 RubyGems 的默认行为,所以一旦你有了 RubyInstaller 和 DevKit,你就可以像这样设置你的堆栈:

  1. 宝石安装 gemcutter
  2. 宝石安装 sqlite3-ruby
  3. 宝石安装导轨

我假设您已经在系统上安装了 SQLite3。如果没有,您只需从 SQLite 网站获取文件 sqlite3.dll 和 sqlite3.exe 并将它们粘贴到 PATH 上的文件夹中,然后再安装 gem。

于 2010-01-24T12:39:01.113 回答
2

Windows XP Ruby 版本:1.8.6

那是你的主要问题。在 Windows 上开发时,我曾经遇到过很多问题,主要是性能和 gem/plugin 相关的问题(有些 gem 无法编译)。

一旦我将 Rails 开发转移到运行第一个 Ubuntu 和最近运行 Debian 的虚拟机上,生活就没有那么令人沮丧了。

我的主要动机是开发平台应该尽可能地匹配部署平台(Ubuntu)。

写了一篇关于如何使用 VirtualBox(免费虚拟化软件)在 Windows XP 上设置 Ubuntu Rails 开发环境的指南。

于 2010-01-24T11:08:54.983 回答
0

Ruby、Rails 和 Windows 从来没有表现得特别好。我在 OS X 和 Ubuntu 上,绝对没有这么糟糕。

迁移到 Rails 2.3.x 是向 Rails 3 迈出的一步,因此需要一些额外的操作(迁移到 Rack 是最明显的)。

我才意识到我没有真正的答案......

于 2010-01-24T05:09:40.787 回答
0

InstantRails使安装在 Windows 上变得非常容易,因为它们已经为您完成了所有复杂的工作......但是您必须愿意使用旧版本的 Ruby 和 Rails,因为它已经 3 年没有更新了。

于 2010-01-24T06:02:36.670 回答