写点什么

RailsInstaller 简化了 Rails 在 Windows 上的安装过程

  • 2011-02-02
  • 本文字数:2927 字

    阅读完需:约 10 分钟

RailsInstaller 向 Windows 开发者提供了一种便捷的方式以轻松、快速创建 Ruby on Rails 3 应用。到目前为止,Windows 开发者需要自己搭建好 Ruby、RubyGems、Rails 以及 SQLite 才能开始创建 Rails 应用。多亏了来自 Engine Yard 的 Nic Williams 博士及其团队,现在一切都变得简单异常。

目前的 RailsInstaller 提供了如下功能:

  • 通过向导的轻松安装
  • Rails 3.0.3
  • Ruby 1.8.7——p330
  • SLQite 3.7.3
  • Git 1.7.3.1
  • DevKit

InfoQ 有幸采访到了 Nic Williams 博士以深入了解 RailsInstaller 项目及其现在和未来将提供的功能。

提到 RailsInstaller,人们的第一个想法就是既然可以自己安装每一个组件,为何还需要 RailsInstaller 呢。

Rails 新手需要一键安装的软件包尽快上手。如果你的朋友对 Ruby on Rails 感兴趣,那么你可以直接给他个 URL,剩下的东西他自己就可以轻松搞定。如果你正在进行 Rails 培训课程,那么如何让所有学生都能尽快上手呢?这正是 RailsInstaller 的目标所在。用于帮助开发者快速上手 Rails 的一站式解决方案。

既然项目的大部分都是由 Engine Yard 的员工所资助的,我们想知道项目的开发是 Nic Williams 个人的事情还是 Engine Yard 公司的事情:

我们热爱 Ruby,我们也热爱使用 Ruby 的开发者。在 Engine Yard,我们都是 Ruby 用户,如果每个开发者,每个咨询师都能从 Java/PHP/.NET 转到 Ruby on Rails 进行开发,那将是多么好的一件事啊。 如果我们能简化这种转换,那么这些开发者或许就会真的转换过来。这正是我们所期望的事情。

Engine Yard 承诺支持开源并对 Rails 社区有所贡献,这个项目也是 Engine Yard 承诺的一部分。

这种项目由很多内容构成,我们很难独自完成一切。在被问到都有谁参与到了项目中,Nic 博士提到了开源社区的一些知名人物:

Wayne E Seguin 和 Luis Lavena 构建了 Windows 1.0.0 版。Wayne 完成了两周的 sprint,Luis 则作为指导。 Wayne 因其成功的 RVM 项目(Ruby Version Manager,Ruby 版本管理器)而名声大噪,并于最近回到了 Engine Yard。如果你不知道,那么应该清楚现在 Ruby 的版本不止一个,但 RVM 可以跨越多个平台保持 Ruby 的简单性与一致性,这样你就可以安装和使用任意的 Ruby 版本了。RVM 用户只需选择需要使用的 Ruby 即可。

Luis 则是 Ruby on Windows 的教父级人物。他曾经独自开发出了一键式的安装器(One-Click Installer),后来又创建了后继者——新的 RubyInstaller (“RubyInstaller for Windows“)。在过去 5 年多的时间内,Ruby 的一键式安装器已经有 500 多万的下载量了,不可思议吧。

Ruby 社区的很多人都知道 Ruby 1.9.2 是最快、最棒的 Ruby 实现。RailsInstaller 带有 Ruby 1.8.7,我们想知道为什么会带有这个版本呢:

RailsInstaller 安装器有两个目标(本周我们发布了一个 Windows 版本的)——人们能否在 5 分钟内上手 Rails 应用开发;是否使用了每个 Ruby 开发者都在使用的基本工具?第一个目标是让用户喜欢上 Rails 与 Ruby;第二个目标是让他们能够融合到现有的、极富激情的 Ruby 社区。 这种想法指导着我们的决策。这也是 Windows 版本的安装器为何选择 Ruby 1.8.7 而非 Ruby 1.9.2 的原因所在。在当今的 Windows 领域,用户如果使用 Ruby 1.8.7 会获得更好的体验,Bug 也更少。Ruby on Rails 与 Ruby 新手并不需要知道这些。因此我们替这些新用户做了决定,将最棒的 Ruby 工具打包在一起并随 RailsInstaller 安装器一同发布。

如果 RailsInstaller 用户喜欢上了 Ruby,了解了 Ruby 1.9.2 并问”我怎么没有使用 Ruby 1.9.2?“并且想要尝试一下,那么他们就可以去做了。他们会下载 Ruby 1.9.2、下载 DevKit、安装所有的 Gems,发现 Bug,并成为 Ruby 社区的一员。

有一天,我们会携带 Ruby 1.9.2 的。也许是 Rubinius 或 JRuby。无论哪个都会给用户最棒的体验。

但目前,我们只希望用户能够爱上 Ruby,爱上 Rails。

InstantRails 已经成为 Windows 开发者上手 Ruby on Rails 的可靠环境。InstantRails 提供了一个图形用户界面以帮助不熟悉 Ruby 或 Rails 所用的命令行工具的 Windows 用户。Nic 博士谈到了关于 RailsInstaller 未来的思考以及是否应该向开发者提供图形用户界面:

这里我想说的是,InstantRails 审核者 Rob Bazinet 也是 InstantRails 最后一个维护者,他与我就 InstantRails 2011(现在叫 RailsInstaller)谈了很久。这是一个说不清楚的问题。 从 2005 年到 2008 年,我们在使用 InstantRails,这也是我 2005 年开始 Rails 开发时所用的工具。但遗憾的是,InstantRails 在 2007 年曾停止开发了,最后一个发布版中带有 Ruby 1.8.6,它与 Rails 3 不兼容。InstantRails 的代码基也太老了 ——我相信它可以追溯到 2005 年之前——我们认为开始新的代码基是最快的途经了。

谢谢你 Rob,你更新了 InstantRails 站点,加上了一个指向 RailsInstaller 1.0 的链接,将其作为 InstantRails 的“下一版本”。

我还不太确定对 GUI 到底采取何种处理方式。构建一个独立的 GUI?只是为了 RailsInstaller for Windows 的用户?还是再为 OS/X 创建一个 RailsInstaller GUI?还是与现有的流行 IDE 集成,还是与 Windows 或 OS/X 用户在开始学习 Rails 时所用的文本编辑器集成?或许我们应该将注意力放在与 Visual Studio 和 Xcode 的集成?

这个问题问的好,但我现在还没有明确的答案,不好意思。

知道如何在 Linux 上运行 Rails 的开发者应该知道 Apache Web Server 的复杂细节,但 Windows 开发者对这方面就了解甚少了。既然开发者主要使用 IIS,那么讨论就应该转移到部署与托管策略上了:

RailsInstaller 之所以优秀,主要在于它关注于“知道这些事情的人”与这些话题之间的关系。比如说,能够让 IIS 和 Rack(Rails 应用低层次的接口)协作工作。 Brian Hogan 列出了 Windows 用户在使用 Ruby 时可能感兴趣的问题

  • “如何将其与 ActiveDirectory 搭配使用”?
  • “如何使用目前正在使用的所有.NET 程序库”?
  • “如何将其与 SharePoint 集成”?
  • “最后,他们会问关于 IIS 的问题”。

如果我们能提供 Windows 部署的解决方案,那么就可以将其打包到 RailsInstaller 当中或是作为扩展包。

在被问到如何能让开发者参与到项目的开发当中时,Nic 博士说到:

安装器与 Web 站点都是开源的,托管在 GitHub 上。可以在 Pivotal Tracker 上查看到 RailsInstaller for Windows 的发布计划

对于任何项目,特别是新项目来说,重要的是能为开发者提供支持,让他们能够提出问题、汇报 Bug 以及提出建议。

RailsInstaller Google Group 目前的关注点放在了开发者的讨论上。 发现的大多数“Bug”最后都会被再次汇报给每个单独的打包项目,比如 RubyInstaller、Core Ruby、Rails、Bundler 等等。系统向用户提供了一个入口点,用户可以提出自己的问题,社区可以为用户提供解决方案。希望这能对 Rails 新手提供帮助。

如果我们能够成功地选择并将条目打包到安装器中,那么我们基本就不会遇到与 Bug 相关的问题了,但这只是我的梦想而已。

发布 RailsInstaller,获得所有的积极反馈。这是我的梦想。

请感兴趣的读者访问 RailsInstaller 站点以了解关于该项目的更多信息以及上手指南。

查看英文原文: RailsInstaller Provides Easy Rails on Windows Installation

2011-02-02 05:514412
用户头像

发布了 88 篇内容, 共 266.7 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

2021 年软件安全报告:代码开源,福“祸”相依?

腾源会

开源 安全

加入科学计算SIG,挑战最前沿的AI+Science研发与创新

百度开发者中心

百度AI

如何将Perforce Helix Core与CI构建服务器结合使用

龙智—DevSecOps解决方案

ci 持续集成 持续交付 CD

资讯|WebRTC M97 更新

网易云信

WebRTC

误删D盘数据怎么办?推荐使用数据恢复软件EasyRecovery

淋雨

数据恢复 EasyRecovery

抓到Netty一个Bug,顺带来透彻地聊一下Netty是如何高效接收网络连接的

bin的技术小屋

网络编程 中间件 netty 死磕 NIO Java【

全球案例 | 一家有着百年历史的航空公司如何扩展和转型,推动航空业创新

龙智—DevSecOps解决方案

Atlassian Jira 航空公司

Linux系统编程-(pthread)线程创建与使用

DS小龙哥

线程 2月月更

百度AICA再添57位“首席AI架构师”,人工智能与产业场景结合愈发深入

百度开发者中心

飞桨 百度AI

百度智能云开物再收“一个奖状”

百度开发者中心

工业互联网 百度智能云 百度智能云开物

AI+Science:基于飞桨的AlphaFold2,带你入门蛋白质结构预测

百度开发者中心

百度AI

网络安全kali渗透学习 web渗透入门 如何进行基于ping命令的探测

学神来啦

阿里云张献涛:自主最强DPU神龙的秘诀

阿里云弹性计算

阿里云 神龙架构 DPU

Linux系统编程-(pthread)线程通信(读写锁)

DS小龙哥

2月月更

Linux系统编程-(pthread)线程通信(条件变量)

DS小龙哥

2月月更

从小样本学习出发,奔向星辰大海

百度开发者中心

百度云 百度 飞桨

实战领域驱动设计开篇

worry

领域驱动设计 DDD 领域驱动 Domain Driven Design

【架构训练营模块二作业】分析一下微信朋友圈的高性能复杂度

yhjhero

#架构训练营

基于云开发的健身房预约小程序平台

CC同学

裁员,降薪,大牛出走:AI大退却的始末缘由

脑极体

Linux系统编程-(pthread)线程通信(互斥锁)

DS小龙哥

互斥锁 2月月更

像搭积木一样定制系统,这家公司正瞄准数据库做增值服务

SphereEx

浅谈AI机器学习及实践总结 | 社区征文

张浩_house

机器学习 数据工程 机器学习算法 新春征文

某 E-Office v9 任意文件上传【漏洞复现实战】

H

网络安全 漏洞

成为第一没有捷径:AI新势力MindSpore成长秘籍 | 源创者说 专访胡晓曼

科技热闻

Web Components 系列(五)—— 关于 Templates

编程三昧

前端 组件化 2月月更

基于 Kyma 的企业级云原生应用的扩展案例分享 | 社区征文

汪子熙

Kubernetes 云原生 新春征文 2月月更 Kyma

DC系列靶机知识点总结

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

Linux系统编程-(pthread)线程通信(围栏机制)

DS小龙哥

2月月更 围栏机制

浪潮云说丨上云迁移实践

云计算,

一手实录!朱广权的AI手语搭档是怎样“养成”的?

百度开发者中心

百度智能云 百度AI

RailsInstaller简化了Rails在Windows上的安装过程_.NET_Rob Bazinet_InfoQ精选文章