AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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:221793
用户头像

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

关注

评论

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

GreatSQL启动崩溃:jemalloc依赖缺失问题排查

GreatSQL

云备份技术解析:备份删除&合并原理

天翼云开发者社区

云备份

AI+代理IP手把手教你爬取某度

袁袁袁袁满

AI 代理IP 免费代理ip Python爬虫 爬虫实战

坐标上海,20~40K的面试强度

王中阳Go

Go 面经 上海

生成式 AI 在电商评论场景的应用 : 场景分析和技术选型

亚马逊云科技 (Amazon Web Services)

“当月免费时长已达上限”怎么办?ToDesk:给钱

科技热闻

StarRocks Community Monthly Newsletter (Mar)

StarRocks

OLAP 存算分离架构 StarRocks 湖仓一体 数据库 大数据

勒索软件介绍

天翼云开发者社区

勒索攻击

出版社资源管理系统的技术架构

北京木奇移动技术有限公司

出版社 教学资源网 资源管理系统

[方案讨论]怎么把大量电话号码批量导入手机通讯录,联系人号码导入苹果iphone华为小米等手机

一码平川

Edge 浏览器推出 Copilot Vision:免费实时解析屏幕内容;Aqua Voice:极速 AI 语音输入工具丨日报

声网

HAHM哈姆点评项目能变现吗?如何变现?

web3区块链创业团队DappNetWork

区块链 副业 web3 币圈新项目

《Operating System Concepts》阅读笔记:p733-p734

codists

阿里云OSS应对DDoS攻击策略

网络安全服务

阿里云 CDN 域名解析 DDoS DDoS 攻击

Arthas watch (方法执行数据观测)

刘大猫

Arthas 图像处理 图像分割 光学成像 光电成像技术

AI智上 | 用友凭借AI之力,绘财务数智化新蓝图

用友智能财务

出版社资源管理系统的主要功能

北京木奇移动技术有限公司

软件外包公司 出版社 教学资源网

三句话搞定周末出行攻略!我用 AI 生成一日游可视化页面,还能秒上线!

陈明勇

MCP

全面了解如何删除Mac启动台(Launchpad)的无效图标,Mac软件卸载后残留图标无法卸载的解决方法

阿拉灯神丁

mac系统清理优化软件 应用程序卸载 程序坞图标删除软件 CleanMyMac X中文版 卸载清理软件

京东3D空间视频生成技术探索与应用

京东零售技术

MES助力电线电缆行业生产:从质量管控到追溯管理

万界星空科技

mes 电线电缆行业 制造业工厂 电线电缆mes 生产管理MES系统

阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!

阿里云大数据AI技术

大数据 elasticsearch 阿里云 Serverless 向量检索

zk源码—会话的实现原理

电子尖叫食人鱼

Java

汽车上云的不可逆之路

脑洞汽车

AI

在亚马逊云科技环境上基于 Dify Agent 快速部署 text2SQL 智能数据分析助手

亚马逊云科技 (Amazon Web Services)

出版社资源管理系统的开发

北京木奇移动技术有限公司

软件外包公司 教学资源网 资源管理系统

SvelteKit 最新中文文档教程(21)—— 最佳实践之图片

冴羽

前端 前端框架 React Svelte SvelteKit

1688代采系统功能深度解析:如何通过自动采集商品详情数据API接口实现高效运营

代码忍者

1688代采集运系统

做Docx预览,一定要做这个神库!!

沉浸式趣谈

Vue 前端 docx 文件预览

关税冲击下,全球AI向何处去?

脑极体

AI

促销系统:促销活动、优惠券、优惠规则概念模型设计

量贩潮汐·WholesaleTide

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