The Ubuntu Experience
Here are the notes of my attempt to create the ultimate 64-bit Ubuntu 11.04 dev machine, from fresh install to “finish” (as if the tweaking is ever trully finished).
Get Wireless Working
Just after I installed Ubuntu, I noticed that my wireless was acting a little slow. After a little probing, it turned out to be a driver conflict with the default Ralink USB drivers. A quick
lsmod | grep rt showed that I had rt2870sta running (which was fine), and then a few other drivers that needed to be blacklisted. I had to append the following to
# Get wireless working blacklist rt2800usb blacklist rt2800lib blacklist rt2x00usb blacklist rt2x00lib
Everything was pretty snappy after rebooting.
UI Tweaks / Hardware Drivers / etc
I mostly followed these two articles immediately after installing Ubuntu:
- Top Things to do after installing Ubuntu 11.04 Natty Narwhal
- 12 Things I did After Installing New Ubuntu 11.04 Natty Narwhal
OpenGL & SDL
Some packages for OpenGL/SDL bindings:
$ sudo apt-get install xorg-dev mesa-common-dev libglu1-mesa-dev \ libsdl1.2debian \ libsdl1.2debian-alsa \ libsdl1.2-dev \ libsdl-image1.2 \ libsdl-image1.2-dev \ libsdl-mixer1.2 \ libsdl-mixer1.2-dev \ libsdl-net1.2 \ libsdl-net1.2-dev \ freeglut3 freeglut3-dev \ glutg3 glutg3-dev
Adobe Air & Pandora One
I don’t know about you, but I can’t live without Pandora One. Unfortunately, installing Adobe Air on 64-bit Ubuntu wasn’t as easy as I had hoped. You can get it to work with a little finagling though: Install Adobe AIR on 64-bit Ubuntu 10.10.
$ sudo apt-get install exuberant-ctags
$ sudo apt-get install subversion git-core mercurial
$ sudo apt-get install r-base r-base-dev
Java JRE & JDK
You should be able to
sudo apt-get install haskell-platform, but there was a bug in the package that caused apt-get to fail. Until it gets fixed, take a look here.
Here’s what I did:
$ sudo add-apt-repository ppa:brcha/ppa $ sudo apt-get update $ sudo apt-get install haskell-platform
I initially installed Ruby via
sudo apt-get install ruby, but quickly removed the package in favor of letting RVM handle my rubies through and through. If you’re not familiar with RVM, give this a good read: Ubuntu, Ruby, RVM, Rails, and You.
Until Ubuntu starts packaging
gst again, you’ll need to compile it yourself. Grab the latest version from here (at the time of writing, it was v3.2.4).
# Prereqs: $ sudo apt-get install tcl tcl-dev tk tk-dev # Compile: $ wget ftp://ftp.gnu.org/gnu/smalltalk/smalltalk-3.2.4.tar.gz $ tar xzf smalltalk-3.2.4.tar.gz $ cd smalltalk-3.2.4 $ autoreconf -vi $ ./configure # If ./configure outputs # "checking whether to install <SOME_PACKAGE_HERE>... no" # you'll probably want to see which headers couldn't be found, # and apt-get the corresponding library before continuing. $ make $ sudo make install
$ sudo apt-get install squeak-vm
$ sudo add-apt-repository ppa:plt/racket $ sudo apt-get update $ sudo apt-get install racket
This site suggests that the following esential and optional packages be installed (respectively):
$ sudo apt-get install m4 autotools-dev libssl-dev libncurses5-dev libx11-dev libxt-dev libltdl-dev $ sudo apt-get install libmhash-dev libmcrypt-dev libgdbm-dev libpq-dev libdb-dev
Then download and compile:
$ wget http://ftp.gnu.org/gnu/mit-scheme/snapshot.pkg/20090107/mit-scheme-c-20090107.tar.gz $ tar xzf mit-scheme-c-20090107.tar.gz $ cd mit-scheme-c-20090107/src $ etc/make-liarc.sh $ sudo make install
$ sudo apt-get instal clisp
$ sudo apt-get instal sbcl
See this gist/script.
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 $ sudo nano /etc/apt/sources.list $ echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | sudo tee --append /etc/apt/sources.list $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install mongodb-10gen
I installed Eclipse, Netbeans and Emacs from the Software Center. Vim and IntelliJ IDEA were a little more involved, though.
Installing IntelliJ IDEA
I wanted a decent Vim will all the bells and whistles, including Command-T. Ubuntu has a package for Vim, but it’s a little flakey with Ruby extensions (it was at the time wrote this, anyway). Here’s (more or less) everything I needed to get a big fat vim compiled and installed from source.
# Vim dependencies: $ sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \ libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \ libcairo2-dev libx11-dev libxpm-dev libxt-dev # Language bindings: $ sudo apt-get install python python-dev lua5.1 luarocks perl libperl5.10 # Compile: $ hg clone https://vim.googlecode.com/hg/ ~/vim $ cd ~/vim $ hg update -C v7-3-154 $ ./configure --with-features=huge \ --enable-perlinterp --enable-pythoninterp \ --enable-rubyinterp --enable-gui=gnome2 \ --disable-largefile \ --enable-luainterp=dynamic $ make $ sudo make install # If you get "Terminal entry not found in terminfo 'gnome-256color'" in terminal vim, # you'll want this: $ sudo apt-get install ncurses-term
After installing my favorite apps, I needed to get my dotfiles from my Windows box copied over. This presented a bit of a problem, considering how I had my dotfiles stored in git: all files were in the root, which meant that I had to clone the repo directly into my home folder. I settled on creating a dedicated
~/.dotfiles folder to host my dotfiles, each of which would then be symlinked into
~/ via a
Rakefile. Whenever I get around to customizing my
bash, I’ll throw in a script to recursively load my scripts.
You can take a look at my
Rakefile and dotfiles here.