Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News DebGem: Ruby Gems for Debian

DebGem: Ruby Gems for Debian

Leia em Português

This item in japanese

On Linux systems, you usually manage all installed software via a package management system, like for example APT on Debian and Ubuntu or RedHat's RPM. On the other hand, many programming languages come with their own toolset for installing and updating software, like Ruby's Gems or Python's Eggs. This certainly makes sense on operating systems that don't provide the services of a package manager, but it also causes many inconveniences on Linux systems, because "it takes the control out of a system's standardized package manager", as free software developer Diego Pettenò writes and elaborates in detail.

Phusion, the company behind the Ruby Enterprise Edition and the Phusion Passenger (a.k.a. mod_rails), offers a solution for plagued system administrators by providing an APT repository for most Gems. Installing a Gem, for example RMagick, is as simple as typing apt-get install librmagick-ruby and it will get installed along with all dependencies such as libmagick10.

DebGem is currently in a free public beta period, but the plan is to charge for the service once the packages are of good enough quality. We talked to Hongli Lai and Ninh Bui from Phusion to learn more about how DebGem works:

We can tell you that the process is partially automated. This is not surprising because we're programmers. It took quite some effort to write an automated conversion system. However, not everything can be automated (not all gems can be converted cleanly) so we have to specify exceptions by hand. Discovering these exceptions as well as testing is also done by hand. We are armed with an army of virtual machines in order to compile for and test on various distributions and platforms. Because there are so many gems (approximately 25000) a full conversion process typically takes several hours even if we parallelize the process with multiple machines. Uploading the resulting packages to a server takes several hours. All in all, it's non-trivial and requires time, care and constant maintenance.

Are there any plans to support other package managers? 

At this moment we have no plans to support other package management systems, but we may reconsider if enough people express demand for it.

Is there any relation between DebGem and the Ruby Enterprise Edition?

DebGem has no relation to Ruby Enterprise Edition, although one of our long-term plans is to provide DebGem packages compiled against REE. There are various reasons why this is non-trivial, which is why we haven't done it already.

So while DebGem isn't a solution for the underlying problem, it seems to be a very nice workaround and might make administrators happy. To learn more, visit the DebGem website or take a look at their FAQ.

Rate this Article