The state of Linux package managemen sucks.
So here I am, wanting to set up a demo of something I’m working on for the public internets. I figure that since I have this big Cisco IPTV machine which will eventually replace Eron sitting here, I should go ahead and set my demo up on that.
And that is where my woes begin. Desu is running Debian and the project I’m working on is with Rails. Debian uses Apt for package management; Ruby uses Gems. Desu has *only* had Subversion, Apache2, and some webDAV module for Apache installed on it. No MySQL, no Ruby, no Gems, and certainly no ImageMagick.
I spend a few minutes installing Ruby. That’s a big ol’ apt-get install ruby irb rdoc ri because, you know, making a ruby-developers metapackage with the whole kit and kaboodle would be too much to ask from the Ubuntu folks. Instead, they just confuse the living shit out of mister Wow-web-2.0-is-cool-let-me-try-this-Ruby-stuff-out! because he’ll only type apt-get install ruby and then have no idea why IRB is not starting.
Then I go ahead and grab the latest version of Gems from RubyForge. I have no idea if there’s a package for this in the Ubuntu repositories, but I won’t bother with it, especially since Desu has Dapper on it. Since Gems can update itself, that’s not too big of a deal — or is it? Why should I need to install anything from a tarball?
But then, I go on to install my gems.
nevans@desu:~$ sudo gem install -y mysql rmagick rails mongrel
This fails spectacularly. I was missing a Ruby -dev package that I needed. I reran the command; it bombed out again. I tried installing a few MySQL packages until it worked. Then I installed the ImageMagick libraries (and the -dev!) to head off the next failure.
And then it struck me; why the hell do I need to worry about dependencies? I thought package managers were supposed to worry about those for me since it’s like, a computer and I’m a human being whose time is valuable.
Because Apt and Gems are two different package managers, of course! So, guys, where’s my meta-get install gems:rmagick gems:mysql gems:rails gems:mongrel?

