在 Linux 系统中,通常我们需要一个包管理系统来管理所有安装的软件,例如 Debian 和 Ubuntu 的 APT 或者 RedHat 的 RPM 。 另一方面,很多编程语言都有着自己的安装和更新软件的工具,例如 Ruby 的 Gems 和 Python 的 Eggs。如果在那些不提供包管理服务的操作系统上, 编程语言的这种做法看似是合理的。但是在 Linux 上,这样会带来许多不便,因为“它从系统的标准包管理器中抢夺走了控制权”,自由软件开发者 Diego Pettenò详细阐述了这种情况。
开发了Ruby 企业版和Phusion Passenger(又名mod_rails)的 Phusion 公司为烦恼的系统管理员给出了一个解决方案,它为大多数的 Gems 提供了一个 APT 仓库。现在安装一个 Gem,例如 RMagick,就如同输入apt-get install librmagick-ruby 这样简单,而且能够自动安装好所有的依赖程序,例如``libmagick10。
DebGem 现在处于免费的公开 Beta 阶段,但是该公司计划一旦软件质量足够的好,将会对这项服务收费。我们采访了 Phusion 的 Hongli Lai 和 Ninh Bui,以期获得更多关于 DebGems 更为细节的信息:
我们能够告诉你的是,这个过程是部分自动化的。听到这个结果请不要惊讶,因为我们是程序员。如果要写一个自动的转换系统,将需要做大量的努力和尝试。但 是,并不是所有的东西都能够自动化处理(并不是所有的 gem 都能够完美地转换),所以我们不得不手动处理一些异常。发现并测试这些异常也是手工完成的。我 们有大量的虚拟机,所以能够在不同的发行版和平台上进行编译和测试。由于 Gem 的数量如此之多(大约 25000 个),即使我们在多台机器上并行处理,一个 完整的转换过程也需要数个小时。上传生成的包也需要数个小时。总之,这个不寻常的软件需要大量的时间、足够的关注和长期的维护。
请问有支持其他包管理工具的计划吗?
现在我们还没有这样的计划,但是如果有足够多的用户表示了这样的需求,我们将会考虑。
DebGem 和 Ruby 企业版有联系吗?
DebGem 和 Ruby 企业版没有任何联系,虽然我们的长期计划之一就是在 Ruby 企业版中集成 DebGem。这并不容易做,原因有很多,而正是基于这些原因,现在还没有完成。
所以尽管 DebGem 不是当前所面临的问题的一个解决方案,但是它仍然是一个精巧的应急方案,让管理员喜笑颜开。了解更多信息,请访问 DebGem 官方网站或者查看FAQ 。
查看英文原文: DebGem: Ruby Gems for Debian
评论