BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Rip:一个全新的Ruby包管理系统

| 作者 Mirko Stocker 关注 0 他的粉丝 ,译者 杨晨 关注 0 他的粉丝 发布于 2009年6月23日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Rip是一个GitHub团队开发的全新的Ruby包管理系统。它能够管理不同的安装源,例如目录、文件,Git版本库以及RubyGems等。

另外一个有趣的新特性是虚拟环境(“ripenvs”)。Ripenvs能够用于无冲突地安装和管理一个包的多个版本。Ripenvs能够使得依赖库的升级更加安全,方法很简单,只需通过创建一个新的实验环境然后在这个环境中升级即可,如果中途发生任何意外,你也能够回到之前稳定的环境。

但是为什么是一个全新的包管理器?RubyGems怎么了?我们采访了Rip开发者之一,Chris Wanstrath:

RubyGems没有任何什么问题。我很喜欢RubyGems。看起来人们认为Rip是“修正”或者是补充RubyGems。但是事实并不是这样。

Rip的目的是使得包的安装、使用和管理更加快捷方便。它的目标人群是安装者而不是分发者;是那些能够通过命令准确知道应用程序所使用的库版本的用户,而不是那些需要猜测库版本的用户;是那些希望在安装包的时候希望知道发生了依赖冲突的用户,而不是对此漠不关心的用户。

Rip是为那些希望能够主动知道运行X的版本的用户编写的。这也是在帮助你调试一个问题。希望能够保证所有计算机都运行着相同版本的相同库的用户可以使用这个工具。还有那些希望看到升级某个库的影响如何的用户也可以使用这个工具。

Rip不是寻找其他系统的缺点而是优点。

仅仅使用RubyGems是否会更加容易一些呢?

Rip和RubyGems是两个迥异的工具:
  • Rip和你的$LOAD_PATH相关,而RubyGems则是重载了‘require’。
  • Rip关注于$RUBYLIB而RubyGems需要一个‘require “rubygems”’。
  • Rip能够管理多个环境,每个环境的库的版本是独立的,而RubyGems只能管理一个单独的环境,每个库可能有多个版本。
  • Rip能够(理论上)安装任何包类型,而RubyGems只能安装.gem文件。
所以,它们真的是不同的项目,关注于不同的东西。我不相信它将会在工作的时候(或者部分),完全改变RubyGems的目标、核心理念和基础代码。这两个系统能够和谐共处。

虚拟环境貌似是管理为不同版本Ruby编写的包的完美解决方案,例如JRuby。

当然,这也是Rip优点所在——也许你需要为不同版本的Ruby发布不同版本的ripenvs(可安装的Rip虚拟环境)。一个是为1.9,一个是为1.8,一个是为JRuby——使用Rip对你和你的客户来说都更加容易。

这就是Rip工作的方式。不需要任何特别的特性。

Rip现在仅仅是发布了0.0.1版,你们接下来打算做些什么呢?

我们还没有开始升级甚至是深入了解ripenvs的能力。能够使用一个命令(例如 ‘rip freeze | gist ’)来共享开发环境,合并开发环境而不用担心版本冲突。使用ripenvs部署你的应用程序仅仅是我们的目标之一。

我们也希望能够复制git的‘reflog‘思想,所以你能够轻易地检视或者撤销任何你在ripenv中所作的更改。你不需要担心任何数据或者设置的丢失。

我们也有一些比较大的想法,比如能够帮助你根据名字而不是url找到包。

当然,支持hg、svn和bzr是计划之内的事情。你需要安装它们。

我们也会在Rip 1.0中支持Windows。

更多Rip的信息,包括一个简短的教程请参见Rip website

查看英文原文:Rip: A New Package Management System for Ruby

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT