InfoQ

News

RubyGems: 1.1.0 released, now works on Rubinius

Posted by Werner Schuster on Mar 30, 2008 09:10 PM

Community
Ruby
Topics
Deployment / Datacenter ,
Dynamic Languages
Tags
Rubinius ,
RubyGems ,
Open Source Project Releases
Eric Hodel, maintainer of RubyGems, announced the release of RubyGems 1.1.0. (For a discussion of RubyGems past, present and future, see InfoQ's interview with Eric Hodel at RubyConf 2007).

The new features:
  • RubyGems now uses persistent connections on index updates. Index updates are much faster now.
  • RubyGems only updates from a latest index by default, cutting candidate gems for updates to roughly 1/4 (at present). Index updates are even faster still.
    • gem list -r may only show the latest version of a gem, add --all to see all gems.
  • gem spec now extracts specifications from .gem files.
  • gem query --installed to aid automation of checking for gems.

For the full list of changes refer to the 1.1.0 ChangeLog file.

The quickest way to update (from the release notes):
gem update --system   (you might need to be admin/root) 
NOTE: if you're on an old RubyGems (before 0.8.5), Eric recommends this:
gem install rubygems-update  (again, might need to be admin/root)
update_rubygems (... here too)
or simply fall back to download the RubyGems 1.1.0 release from RubyForge, unpack the archive, go to the created directory and do:
ruby setup.rb (you may need admin/root privilege) 

In similar news, as Eric's on the Rubinius team employed by EngineYard, he's been working on getting Rubinius to run RubyGems as well. These efforts seem to have progressed very far, as Michael Klishin reports that installing Rails via RubyGems works on Rubinius, following Eric's announcement of Gems' inclusion into Rubinius:
Lincoln Stoll helped me shake the last bugs out of RubyGems, so we integrated it into Rubinius. We decided to make it a subcommand rbx gem like rbx compile or rbx describe. There are still a few things broken in RubyGems, namely installing gems with extensions because mkmf.rb doesn’t work in Rubinius.

Lincoln also pointed out and gave me patches for a few backwards-compatibility problems with RDoc, so now both RubyGems and RDoc work on Rubinius.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.