links
300 Images From 1800 Sites
Punctuated Productivity
ascii table
brainjar.com: css positioning
Catman's Reference Guide to XHTML 1.1
Catman's XHTML 1.1 Elements and Attributes Reference Guide
citeseer
Color Scheme Generator
common errors in english
cool images
Copying music between authorized computers with iTunes for Windows
css layout-o-matic
daypop
del.icio.us
elegant hack
emacs wiki
floatutorial
imho...
keystroke shortcuts for windows xp
mozilla keyboard shortcuts
NameVoyager
perldoc.com
programming language popularity
regular expression tester
selectoracle
short url services
simple urls for search engines
the unix acronym list
yahoo dictionary

permalink

installing ruby and rails on debian

Getting ruby installed on debian has been a challenge, but most of the issues seem to be worked out at this time. The challenges stem from the debian ruby package maintainers splitting the ruby standard library into multiple packages as is the practice on debian. This can cause ruby utilities, such as the ruby package management system, rubygems, to fail when items it depends upon are missing. These problems are worsened by some very, very poor error messages and some bugs in the ruby and utility software. Additional problems can be injected by the user (in this case, ah, me), by attempting to fix problems without fully understanding all of the components and their interactions1.

Ruby on Rails
The ruby on rails wiki has instructions for installing ruby and rails on ubuntu, debian testing and unstable (I think that last comma is in the right place). The gist of the instructions is:

Just now checking the instructions on the wiki I expected them to be different—they have improved the instructions and they are almost exactly the instructions I planned to list here.

My only beef with the testing instructions is they use apt-get and not aptitude. Aptitude is the current prefered package manager on debian but debian gurus tend to use apt-get. Both will work but aptitude will keep track of packages that were installed in order to satisfy dependencies of other packages, and remove those automatically when the packages that caused them to be installed are removed. In the instructions, simply replace “apt-get” with “aptitude”.

I don’t like the unstable instructions either and here’s why: The concept is to use debian’s package management system to manage your ruby packages. In theory this is fine. In practice, so far, the debian packages have been trailing the rapidly moving ruby packages by a substantial amount. I doubt that debian will be able to keep up with ruby in the near term.

1 I had a strange mix of most things worked, but some didn’t and nothing I did fixed it until I removed ruby and eveything that is related to or wants to someday be ruby from my system, and then hosed out the system at the local car wash. The problem was that I tried to install ruby on several occasions using every technique or trick I could think of short of switching to a new distro, and I was close to doing that. I lost track of these various ruby installs which compounded my problem. I discovered this by deciding once again to start from scratch and follow the directions of the experts from the page referenced above. So I used debian’s aptitude to completely remove ruby and rails—this alone is not easy since aptitude will not remove a package if there are any other packages dependent on it, and I have not discovered the trick to finding those dependencies. After thinking ruby was completely removed for some reason my fingers typed ‘ruby -v’ at a bash prompt and I got a very nice ruby version number as output! Ruby was indeed still alive on my system. So this time I did a find command from the root for anything ruby like, and found my other ruby installation. When I was satisfied that ruby was no longer on the system I proceeded with the expert instructions, and life has been good ever sense.

Share this article on post this at del.icio.us post this at Digg post this at Reddit

* * *