There’s a reason I’m reluctant use a package manager.
They can be great when they work, but when they fail you’re dead in the water. And I mean really dead. Case in point: the rubygems package manager. Great when it works! But when I was confronted with a misbehaving Ruby app, here’s what happened.
The biggest problem of this particular app was memory usage. I feared a leak would be present. Leaks are relatively uncommon in Ruby I should tell you. The garbage collector is so dumb [intentionally?] that it works nearly all the time. Besides, by consistently using blocks, there is no chance to leave referenced objects hanging around. They’re immediately out of scope and destroyed.
There are a few notorious packages though and RMagick is one of those. Even though most leaks are now fixed, back in the day [2005] there were plenty. So even though the author stated that all leaks had been resolved, I had my suspicions.
One gem uninstall rmagick and a few strategic edits later, I was in business. Or so I thought! Memory was still used a lot. It seemed to not have made any difference. And so ensued a full week of bug hunting, disabling more and more services [even changing web servers, but I had been planning to anyway]. Nothing helped.
Then it dawned on me to do a locate RMagick on the server. And loooky! All of RMagick is still everywhere! In site-ruby, not as a gem, but still there anyway. And good ole Ruby found this lingering RMagick just fine and used it. Of course, this lingering version was positively ancient and full of impressive leaks. Great stuff. A hard core rm -rf finally did the trick.
Apparently, that was it. I was just so focused on using rubygems [first; installing the latest version; then removing the gem] that it didn’t occur to look a bit further.
Note to self: there is one way to install software on unix.
tar xvfz package
./configure
make
sudo make install
Everything else is asking for trouble.
FIPO!