Ubuntu 14.04 Setup for Rails and Ember with i3

Recently I switched to Ubuntu 14.04 for my work machine. I develop both Rails and Ember applications. Here was my latest setup process, which provides i3 and a few extras.

Note that I have an Nvidia GTX760 card and a Samsung 512Gb SSD.

1. Ubuntu base

1. Download the 14.04 Live cd, burn it to disk, and install. Manually partition if you prefer.

2. Canonical Partners: Open Software & Updates to the Other Software tab, check Canonical Partners and Canonical Partners (Source Code). Allow it to update.

3. Upgrade the system Open the terminal, enter

sudo apt-get upgrade

4. Add synaptic for precise package management:

sudo apt-get install synaptic

5. Remove the guest account:

echo alow-guest=false | sudo tee -a /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

2. Development

1. Rails ready: For a quick rails dev setup (including most build tools you will need) I use railsready by Josh Frye:

wget --no-check-certificate \
https://raw.githubusercontent.com/joshfng/railsready/master/railsready.sh && \
bash railsready.sh

2. NPM: Now install npm via PPA. To prevent sudo woes, have npm store modules in our home directory:

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install nodejs
mkdir -p ~/.local/share/npm
npm config set prefix ~/.local/share/npm

3. Google Chrome: Download and install:

sudo dpkg -i google-chrome-stable_current_amd64.deb
# If it fails because a dependency is missing, follow up with:
sudo apt-get -f install

4. Sublime Text 3: Download and install:

sudo dpkg -i sublime-text_build-3065_amd64.deb

5. Vim, gvim, and janus:

sudo apt-get remove vim-tiny
sudo apt-get install vim vim-gnome
curl -Lo- https://bit.ly/janus-bootstrap | bash

6. Grunt:

npm install -g grunt-cli

7. Bower:

npm install -g bower

8. ember-cli:

npm install -g ember-cli

9. Gimp for image editing:

sudo apt-get install gimp gimp-data gimp-plugin-registry gimp-data-extras

10. Tmux and Tmuxinator:

sudo apt-get install tmux
gem install tmuxinator

11. Prax: A POW alternative:

git clone git://github.com/ysbaddaden/prax.git /opt/prax
cd /opt/prax/ && ./bin/prax install

3. Entertainment, Etc.

1. Dropbox: Download and install, and then adjust the file watch limit for Dropbox:

echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p

2. Add DVD codecs:

sudo apt-get install ubuntu-restricted-extras libavcodec-extra libdvdread4
sudo /usr/share/doc/libdvdread4/install-css.sh

3. Adobe flash:

sudo apt-get install adobe-flashplugin

4. Java:

sudo add-apt-repository -y ppa:webupd8team/java
sudo apt-get update
sudo apt-get install icedtea-7-plugin openjdk-7-jre oracle-java8-installer

4. Transmission bittorrent client:

sudo apt-get install transmission

5. Steam game client:

sudo apt-get install steam

6. File extraction utilities:

sudo apt-get install unace unrar zip unzip p7zip-full p7zip-rar \
sharutils rar uudeview mpack arj cabextract

4. i3 Window Manager

1. Install i3:

sudo apt-get install i3

2. Ranger: for file browsing:

sudo apt-get install ranger

3. Sunflower file manager: Download and install:

sudo dpkg -i sunflower-0.2.59-1.all.deb

5. SSD settings:

1. Turn off Hibernation

Edit /usr/share/polkit-1/actions/org.freedesktop.upower.policy and change allow_active to no to turn off hibernation:

<allow_active>no</allow_active>

2. Reduce writes to disk:

Edit /etc/fstab and add discard,noatime,nodiratime to your ssd drive line:

UUID=<uuid number> / ext4 discard,noatime,nodiratime,errors=remount-ro 0 1

3. Put tmp in memory:

Reduce writes by putting /tmp, /var/tmp, and /var/spool in memory, adding this to /etc/fstab:

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/spool tmpfs defaults,noatime,mode=1777 0 0

4. Reduce swappiness/pages:

Reduce swappiness to 0, and adjust dirty page writing if you have 6Gb or more of memory. Edit /etc/sysctl.conf:

vm.swappiness=0
vm.dirty_background_ratio=5
vm.dirty_ratio=60

5. Browser cache:

Install profile-sync-daemon to place browser cache in memory:

sudo add-apt-repository ppa:graysky/utils
sudo apt-get update
sudo apt-get install profile-sync-daemon

Then edit /etc/psd.conf and add your user name to USERS:

USER="your login"

6. Nvidia

  1. Find out the right driver version for your card on http://www.nvidia.com/Download/index.aspx.
  2. Add the edgers PPA repository:
sudo add-apt-repository ppa:xorg-edgers/ppa -y
sudo apt-get update
  1. Install the version you need. E.g. for version 340:
sudo apt-get install nvidia-340

Reboot, choose i3 on the login screen, and start configuring!

comments powered by Disqus