写点什么

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

  • 2009-06-21
  • 本文字数:1295 字

    阅读完需:约 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

2009-06-21 23:221660
用户头像

发布了 90 篇内容, 共 34.4 次阅读, 收获喜欢 5 次。

关注

评论

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

跨平台应用开发进阶(五十七):uni-app 通过 overrideUrlLoading 实现拦截 webview 窗口的 URL 跳转请求

No Silver Bullet

uni-app 跨平台应用开发 三周年连更 webview 窗口 URL 跳转请求拦截

Matlab实现PSO算法

Shine

三周年连更

华为云文字识别OCR-助力企业办公智能化不断发展

轶天下事

华为云搜索服务CSS,助力企业挖掘数据价值

轶天下事

终于可以彻底告别手写正则表达式了

Java你猿哥

Java ssm 表达式 GPT

Qz学算法-数据结构篇(查找算法--插值、斐波那契查找)

浅辄

数据结构 三周年连更

Django REST项目实战:在线中文字符识别

TiAmo

django RESTful 三周年连更

离散信源 R(D)计算及限失真信源编码定理

timerring

信息 信息论

AREX 流量回放实践分享

AREX 中文社区

自动化测试 回归测试 流量回放

华为云云速建站,助力企业搭建网站省心又省力

YG科技

使用Pinia:让Vue状态管理更简单

格斗家不爱在外太空沉思

Pinia 三周年连更

零代码以“王者荣耀”为例解析设计七原则,助你面试拿“五杀”

陈言必行

设计原则 三周年连更

阿里云DTS数据同步实施

乌龟哥哥

三周年连更

OpenHarmony设备开发常用接口

鸿蒙之旅

OpenHarmony 终端设备开发 三周年连更

OpenHarmony接收指定网络的状态变化通知

坚果

OpenHarmony 三周年连更

MD5 到底算不算一种加密算法?

架构精进之路

算法 后端 加密 md5 三周年连更

devops|中小公司效率为王,没必要度量

laofo

DevOps 研发效能 工程效率 效能度量 研发效能度量

IDEA用上这十大插件绝对舒服

越长大越悲伤

IDEA idea插件

【云原生】Docker之创建并进入mysql容器

A-刘晨阳

MySQL Docker Linux 三周年连更

华为云智能云接入ICA,让世界距离更近

YG科技

全面解析|搞懂Nginx这一篇就够了

浅羽技术

Java nginx 反向代理 服务器 三周年连更

系统认知篇:防腐层、门面模式及适配模式的本质 | 京东云技术团队

京东科技开发者

软件架构 门面效应 适配器模式 企业号 4 月 PK 榜 防腐层

从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC

京东科技开发者

G1 ZGC JVM 企业号 4 月 PK 榜 Shenandoah

MySql中执行计划如何来的——Optimizer Trace | 京东云技术团队

京东科技开发者

MySQL 数据库 企业号 4 月 PK 榜 Optimizer Trace

火山引擎分布式云原生平台,帮助企业用好分布式云

科技热闻

重磅|阿里云无影云电脑“魔方AS05”正式上市

云布道师

无影云电脑

OneNet服务器LWM2M物联网协议(智能井盖方案)

DS小龙哥

三周年连更

【图解网络协议】面试官:三次握手都不会,回去等通知吧

袁袁袁袁满

三周年连更

手撕代码系列(二)

Immerse

JavaScript 前端 ES6 ES6-ES12 JavaScript4

华为云医疗智能体,助力医疗健康加速智能化

YG科技

华为云,用科技开启智慧化生活

轶天下事

Rip:一个全新的Ruby包管理系统_Ruby_Mirko Stocker_InfoQ精选文章