Saturday, December 29, 2007

Rails 2, Ubuntu 7.10 Gutsy, ATI radeon, fglrx, dual-head

According to me, some topics are so over-blogged as to be a nuisance rather than a help: Ruby DSL's, ImageMagick on OS X, install Rails on debian/Ubuntu. There must be hundred of blogs and threads on how to install ruby and rails on sarge, etch, badger, dapper, edgy, feisty, and now lenny and hoary.. what's next, molly and itchy? And think, hundreds of delicious tags translates to thousands of Google hits.

Anyway this blog is different. Notwithstanding the foregoing, I claim that installing Gutsy, getting it to run twin-head and running rails 2 is #fast# and *easy*. Nobody's ever said that before. That's why macbooks are selling like, um, twitter subscriptions: buy one, fix screwed up factory ruby install, plug in $200 19" monitor from Costco, buy textmate license, install Rails per hivelogic/macPorts, you're productive. Contrast Debian etch/ubuntu Feisty: install/upgrade O/S, spend up to a week trying to get dual-head config, vim/emacs highlighting /tab completion/project view, SVN client and server etc. to run cleanly, (optional) ponder career switch or suicide, ... buy macbook, you're productive :} This isn't funny, it's happened.

Step 0: start with a fresh Gutsy install if you have more than a dozen backups of xorg.conf in /etc/X11. (I think this procedure would work with Feisty automatically upgraded to Gutsy, but I'm not going to install Feisty and upgrade to find out.) Open a spreadsheet, or openOffic doc to record what you're doing, cause something will be different for each install. Those are my 2 big takeaways: backup xorg.conf and write down every step of the install. Probably not 1st time you've been told...

Step 1: run security updates: System / Administration / Updatemanager... backup /etc/X11/xorg.conf. Enable fglrx (Sys / Admin / Restricted Drivers menu), reboot. Now, per this thread,
sudo aticonfig --initial=dual-head --screen-layout=left
CONT-ALT-backspace to restart X; Note this isn't perfect. In particular, if you edit the conf in Sys/ Admin / Screens and Graphics, it'll wreck xorg.conf, you'll boot to a black void . I said fast and easy, not perfect.

If you're on nvidia/intel graphics card, or have to use open source driver, or whatever, examine this thread for your options: xinerama, TwinView, Merged FB, and note that MergedFB superceded by RandR 1.2. Also, BigDesktop , which is for ATI's open-source driver. See how you end up with dozens of xorg.conf backups, eh? I think a lot of people hand-edited their Feisty xorg.conf, put the xinerama stanzas in per the otherwise excellent Uuntu hacks book, and drove themselves insane trying to fix the missing cursor or missing piece of the desktop or myriad other problems. This guy has tried to make RandR straightforward with GTK, worth a try.

Step 2: do the "sudo apt-get update" and "sudo apt-get upgrade" dance. Next the ginormous command that gives you a working gcc, make and a bunch of other stuff. (stop to complain about Debian's package process, if you like)

sudo apt-get install libglib2.0-dev libusb-dev build-essential autoconf automake1.9 libtool libgnet-dev libhal-dev libhal-storage-dev libdbus-glib-1-dev subversion linux-headers-`uname -r` python-dbus

Don't ask me what it does. I'm a cargo cult. I got it from here. It works.

Step 3: isntall ruby from source. Download the 1.8.6 tarball from ruby-lang.org, tar xvzf, cd to the directory, ./configure, make, sudo make install. You know, shd be familiar. Currently it's the 1.8.6-p111.tar.gz we're looking at.

Step 4: "sudo apt-get install libopenssl-ruby",
"sudo apt-get install rubygems"
"sudo gem update --system"
This is gems 1.0.1, read this if any issues...

Open irb and "require 'rubygems'" Should return "=>true" If not, readline issues, which i think are more of a FreeBSD, OSX , Suse or CentOS/Fedora problem than debian/ubuntu.

Step 5: sudo gem install rails --source http://gems.rubyonrails.org

Step 6: you're not done, you have to set up vim, emacs, komodo, MySQL or Postgres. Or edit with aptana, Jedit or kate or ... ImageMagick, attachment_fu, SWFupload, acts_as_ferret or solr. restful_authentication, OpenID, facebook plugin, backgroundrb, rspec, autotest, firebug, selenium/watir, HAML / SASS/ LiquidView, opera, webkit, VMWare to do IE testing, caching and expiration, sessions with/without cookies, 3 or 4 ajax libs (unobtrusive, LowPro, Jquery), beast forum, SMS/twitter/email_notification, adobe flex ...

Did i forget anything? Oh yeah, Painless PNG plugin, lightbox, Hobo or Streamlined, captcha, Calendar Date Select. CSS for browser reset and tabbed nav: YUI Grids, blueprint, tabnav. Better_nested_set, taggable on more_growth_hormones, state_machine, geokit, sparklines, fckeditor or redcloth or white_list or... Globalize or gettext or gibberish, query_trace. It's entirely possible that rubyworks or Bitnami Rubystack could save you somet ime...

While you're at it, experiment a little: darcs, git, mercurial, camping, merb, sinatra, SQLite, couchDB, seaside, erlyweb. And don't forget about S3, Ec2, monit, god, mint, AWstats, Google sitemap... Oops, premature opt.

But i'm done blogging. I claim each of these topics is adequately and accurately blogged.

Update Jan 1, 2008: the latest install with ATI radeon card (1 SVGA, 2 DVI) doesn't boot past putting up a funny cursor on 2 black screens.