Gem vs. other package managers

Hi,

I’m trying to get rails set up on a newly built Gentoo box. I’ve seen
some conflicting opinions on this around the web and I am now not sure
what to do. Is it better to use rubygems or your OS’s package manager
(emerge in my case) to manange things such as MySQL, Lighttpd, and
Rails? Does it matter which one you choose?

Also, the book I’m reading suggests to do development with Webrick. If
I’m planning on eventually launching my site, would I be better off
using something like Lighttpd for development or is Webrick ok?

Thanks,
Joe

On Jan 16, 2007, at 7:04 PM, Joe wrote:

I’m trying to get rails set up on a newly built Gentoo box. I’ve
seen some conflicting opinions on this around the web and I am now
not sure what to do. Is it better to use rubygems or your OS’s
package manager (emerge in my case) to manange things such as
MySQL, Lighttpd, and Rails? Does it matter which one you choose?

These are orthogonal issues – RubyGems is a package manager for ruby
libraries and nothing more. You might use your OS’s package manager
to install MySQL, Lighty, etc., or you might install from source, but
you couldn’t use RubyGems to do this. You’d use RubyGems to install
the ruby bindings for MySQL, etc.

-faisal

These are orthogonal issues – RubyGems is a package manager for ruby
libraries and nothing more. You might use your OS’s package manager
to install MySQL, Lighty, etc., or you might install from source, but
you couldn’t use RubyGems to do this. You’d use RubyGems to install
the ruby bindings for MySQL, etc.

-faisal

That’s not completely true because most distributions try to repackage
gems. The point of a the distribution package handlers is to know what
all non-data files are and manage them.

Regardless of that I’d recomend using gems. Most of the ruby libraries
are fast moving targets that the distribution packagers can’t really
keep up with. You also loose the extras that gems offer.

Personally I use Debian/Ubuntu and no matter if I use ruby from the
distribution packages or install it from source I install rubygems in
/usr/local. The package manager will ignore everything in /usr/local
and gems.

These are orthogonal issues – RubyGems is a package manager for
ruby
libraries and nothing more. You might use your OS’s package manager
to install MySQL, Lighty, etc., or you might install from source,
but
you couldn’t use RubyGems to do this. You’d use RubyGems to install
the ruby bindings for MySQL, etc.

Regardless of that I’d recomend using gems. Most of the ruby
libraries
are fast moving targets that the distribution packagers can’t really
keep up with. You also loose the extras that gems offer.

I concur from experience with Gentoo Linux. Some packages are literally
months behind. It took a long time for Rails 1.1 to go stable, and it
wasn’t until two weeks or so that RMagick was still at 1.11. And that’s
just two examples.

What I find problematic as well is that some gems may be in the
distribution packaging, and others like Mongrel will be missing. It
would be quite a mix-up if I were to use both Portage and RubyGems to
manage Ruby packages, so I just “emerge” Ruby and RubyGems and then
proceed to use RubyGems to manage the rest of the shebang.

I found the FreeBSD ports to be far more up-to-date, but as always YMMV.

Regards,

Roderick


Nedforce Informatica Specialisten B.V.

+31 (0)53 4500225