Commits

Timothy Corbett-Clark committed ab04511

Merge and update

  • Participants
  • Parent commits 337a75d

Comments (0)

Files changed (1)

-How to install a computer the way I like it
-===========================================
-
-Introduction
-------------
-
-The following explains how to install a machine just the way I like it. Some
-configuration files (e.g. ssh keys) are obviously private so I don't share them
-here.  They are easily identified by reference to files in
-`/home/tcorbettclark/Private/`.
-
-After installing the base OS the whole process takes about an hour.
-
-
-Disk partitions
----------------
-
-I install from scratch on every OS release, alternating between two 16G
-partitions, and using a third partition `/localbackup` to transfer data between
-the two (and for backups). I don't bother to keep a `/home` partition because of
-ever-changing user configuration files.
-
-
+How to install a computer the way I like it
+===========================================
+
+Introduction
+------------
+
+The following explains how to install a machine just the way I like it. Some
+configuration files (e.g. ssh keys) are obviously private so I don't share them
+here.  They are easily identified by reference to files in
+`/home/tcorbettclark/Private/`.
+
+After installing the base OS the whole process takes about an hour.
+
+
+Disk partitions
+---------------
+
+I install from scratch on every OS release, alternating between two 16G
+partitions, and using a third partition `/localbackup` to transfer data between
+the two (and for backups). I don't bother to keep a `/home` partition because of
+ever-changing user configuration files.
+
+
 Ubuntu 14.04 for base OS
-------------------------
-
+------------------------
+
 Install [Ubuntu](http://www.ubuntu.com) 14.04, boot up, and
-
-    sudo apt-get update
-    sudo apt-get upgrade
-
-
-Immediate packages
-------------------
-
+
+    sudo apt-get update
+    sudo apt-get upgrade
+
+
+Immediate packages
+------------------
+
     sudo apt-get install encfs ntp byobu rdesktop mercurial git ipython vim htop tree
-
-(More software will be added later, such as Sublime Text and Dropbox.)
-
-
-Fish
-----
-
+
+(More software will be added later, such as Sublime Text and Dropbox.)
+
+
+Fish
+----
+
 A much nicer shell than Bash:
-
+
     sudo apt-add-repository ppa:fish-shell/release-2
     sudo apt-get update
-    sudo apt-get install fish
+    sudo apt-get install fish
     chsh -i /usr/bin/fish
     mkdir -P ~/.config/fish/functions
-    cp fish/functions/* ~/.config/fish/functions/
+    cp fish/functions/* ~/.config/fish/functions/
     cp fish/config.fish ~/.config/fish/
-
-Chrome
-------
-
-    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
-    sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
-    sudo apt-get update
-    sudo apt-get install chrome
-
-Sign in, and let it sync apps, extensions, bookmarks, etc
-
-
-Google Hangout for voice/video
-------------------------------
-
-Install Google voice and video plugin by logging into <http://gmail.com> and
-starting a hangout.
-
-
-Dropbox for file syncing, sharing, and backups
-----------------------------------------------
-
-Install [Dropbox](http://www.dropbox.com):
-
-    sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://proxy.localoffice:3128 --recv-keys FC918B335044912E
-    sudo add-apt-repository "deb http://linux.dropbox.com/ubuntu $(lsb_release -sc) main"
-    sudo apt-get update && sudo apt-get install dropbox nautilus-dropbox
-
-Obviously the http-proxy may not be required. Be prepared to hack dropbox daemon
-loading code to overcome limitations of `urllib.urlopen` and `proxy` when behind
-particularly annoying proxies.
-
-(To speed up synchronising, seed the Dropbox directory from a local copy.)
-
-
-Encfs for encrypting files on Dropbox
--------------------------------------
-
-I use [Encfs](http://www.arg0.net/encfs) to encrypt certain files stored on
-Dropbox.
-
-Mount my encrypted folder:
-
-    mkdir -p /home/tcorbettclark/Private
-    encfs /home/tcorbettclark/Dropbox/Private /home/tcorbettclark/Private
-
-Note that absolute paths must be used.
-
-Incidentally, unmount with:
-
-    fusermount -u /home/tcorbettclark/Dropbox/Private
-
-
-Sublime text editor
--------------------
-
-Download and install [Sublime Text](http://www.sublimetext.com/2):
-
-    sudo add-apt-repository ppa:webupd8team/sublime-text-2
-    sudo apt-get update
-    sudo apt-get install sublime-text
-
-Add the licence key by cutting and pasting into the sublime menu from:
-
-    /home/tcorbettclark/Private/install/License.sublime_license
-
-Set as default editor:
-
-    echo 'export EDITOR="subl -w"' >> .bashrc
-
-Define my preferred keybindings by seeding from
-
- * <https://bitbucket.org/tcorbettclark/install/src/tip/Default%20%28Linux%29.sublime-keymap>
-
-Install sublime's own package manager by following instructions on
-
- * <http://wbond.net/sublime_packages/package_control/installation>
-
-Then add Sublime packages, e.g.:
-
- * Stylus
- * LESS
- * Coffeescript
- * Side Bar Enhancements
- * Sublime Files
- * Origami
- * INI
- * hg4subl
- * backbone.js
- * cucumber
- * cucumber completion
- * My own <https://bitbucket.org/tcorbettclark/sublime-lint-free>
-
-Then set my preferences from
-
- * <https://bitbucket.org/tcorbettclark/install/src/tip/Preferences.sublime-settings>
-
-Also open a coffeescript file, go to
-    Preferences->Settings - More->Syntax Specific - User
-and add
-    {
-        "tab_size": 2
-    }
-
-Also may need to edit the "binDir" setting in CoffeeScript.sublime-settings.
-
-
-Stop the global desktop menu
-----------------------------
-
-I like my windows to own their own menus, so:
-
-    sudo apt-get remove appmenu-gtk3 appmenu-gtk appmenu-qt
-
-
-Xmonad for tiling window management
------------------------------------
-
-Install [xmonad](http://xmonad.org) with gnome-panel
-
-    sudo apt-get install xmonad suckless-tools xcompmgr gnome-panel
-    mkdir ~/.xmonad
-    cp xmonad.hs ~/.xmonad/
-
-See:
-
- * <https://bitbucket.org/tcorbettclark/install/src/tip/xmonad.hs>
-
-Add a little eye candy by running `gnome-session-properties` and add the following
-on startup:
-
-    xcompmgr -c -f -D 3 &
-
-Logout, select "Gnome xmonad", and log in again.
-
-
-ssh
----
-
-Install:
-
-    sudo apt-get install openssh-server
-
-Setup my keys using:
-
-    cp /home/tcorbettclark/Private/install/id_dsa* .ssh/
-    chmod 600 .ssh/id_dsa*
-
-
-Xterm
------
-
-Allow meta-forward-word to work, and set fonts and colours:
-
- * Edit.Keyboard Shortcuts - disable all menu access
- * Set font to Ubuntu Mono size 11
-
-
-Byobu
------
-
-I prefer screen to tmux:
-
-    byobu-select-backend screen
-
-
-Node
-----
-
-Get up to date version of node and npm:
-
-    sudo apt-get install python-software-properties
-    sudo add-apt-repository ppa:chris-lea/node.js
-    sudo apt-get update
-    sudo apt-get install nodejs npm
-
-
-UPS (for APC SC420)
--------------------
-
-(Obviously optional).
-
-Install:
-
-    sudo apt-get install apcupsd
-
-Adjust `/etc/apcupsd/apcupsd.conf`:
-
-    UPSNAME home-ups
-    UPSCABLE smart
-    UPSTYPE apcsmart
-    DEVICE /dev/ttyUSB0 # although check logs
-
-Enable configuration in `/etc/default/apcupsd` and start:
-
-    sudo /etc/init.d/apcupsd start
-
-Wait a few seconds for `/var/log/syslog` to report starting up.
-
-Test with `sudo apcaccess status`.
-
-
-Mercurial
----------
-
-    cp hgrc ~/.hgrc
-
-
-Git
----
-
-    git config --global user.name "Timothy Corbett-Clark"
-    git config --global user.email "timothy@corbettclark.com"
-    git config --global credential.helper cache
-    git config --global core.editor "subl -n -w"
-    git config --global color.ui true
-
-
-Nose
-----
-
-Set defaults for python unittest runner:
-
-    cp noserc ~/.noserc
-
-
-Virtualenv and friends
-----------------------
-
-We will perform a little bootstrap dance to obtain the most recent versions of all Python packages (controlled with pip not apt):
-
-    sudo apt-get purge python-pip python-virtualenv virtualenvwrapper ipython
-    sudo apt-get install python-setuptools
-    sudo apt-get install python2.7-dev
-
-Note that ``python-setuptools`` will probably not be the most recent version
-(see [distribute](http://pythonhosted.org/distribute)). We will be installing a
-newer version and removing this one later.
-
-We install ``python2.7-dev`` so that some of pip's can compile C from source.
-
-Use ``easy_install`` to install pip to the system, and then pip to install
-``virtualenv`` and ``invewrapper``:
-
-    sudo easy_install pip
-    sudo pip install virtualenv invewrapper
-
-This also installed a newer version of distribute (in ``/usr/local``), so we can
-remove our slightly older debian packaged version:
-
-    sudo apt-get purge python-setuptools
-
-Then to create a virtual env and install Python packages at user-level (i.e. no
-further global pip installs):
-
-    pew-new whatever
-    pip install ipython distribute nose coverage yanc flake8 grin
-    ...
-
-Some pip packages have deb dependencies. For example, to install pip package
-``psycopg2``, first do:
-
-    sudo apt-get install postgresql-server-dev-9.1
-
-
-Non-free stuff
---------------
-
-To add non-free stuff like fonts and reading encrypted DVDs, add the
-[Medibuntu](http://www.medibuntu.org) repository by following their instructions. Then:
-
-    sudo apt-get install mplayer mplayer-gui non-free-codecs libdvdcss2
+
+Chrome
+------
+
+    wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
+    sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
+    sudo apt-get update
+    sudo apt-get install chrome
+
+Sign in, and let it sync apps, extensions, bookmarks, etc
+
+
+Google Hangout for voice/video
+------------------------------
+
+Install Google voice and video plugin by logging into <http://gmail.com> and
+starting a hangout.
+
+
+Dropbox for file syncing, sharing, and backups
+----------------------------------------------
+
+Install [Dropbox](http://www.dropbox.com):
+
+    sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://proxy.localoffice:3128 --recv-keys FC918B335044912E
+    sudo add-apt-repository "deb http://linux.dropbox.com/ubuntu $(lsb_release -sc) main"
+    sudo apt-get update && sudo apt-get install dropbox nautilus-dropbox
+
+Obviously the http-proxy may not be required. Be prepared to hack dropbox daemon
+loading code to overcome limitations of `urllib.urlopen` and `proxy` when behind
+particularly annoying proxies.
+
+(To speed up synchronising, seed the Dropbox directory from a local copy.)
+
+
+Encfs for encrypting files on Dropbox
+-------------------------------------
+
+I use [Encfs](http://www.arg0.net/encfs) to encrypt certain files stored on
+Dropbox.
+
+Mount my encrypted folder:
+
+    mkdir -p /home/tcorbettclark/Private
+    encfs /home/tcorbettclark/Dropbox/Private /home/tcorbettclark/Private
+
+Note that absolute paths must be used.
+
+Incidentally, unmount with:
+
+    fusermount -u /home/tcorbettclark/Dropbox/Private
+
+
+Sublime text editor
+-------------------
+
+Download and install [Sublime Text](http://www.sublimetext.com/2):
+
+    sudo add-apt-repository ppa:webupd8team/sublime-text-2
+    sudo apt-get update
+    sudo apt-get install sublime-text
+
+Add the licence key by cutting and pasting into the sublime menu from:
+
+    /home/tcorbettclark/Private/install/License.sublime_license
+
+Set as default editor:
+
+    echo 'export EDITOR="subl -w"' >> .bashrc
+
+Define my preferred keybindings by seeding from
+
+ * <https://bitbucket.org/tcorbettclark/install/src/tip/Default%20%28Linux%29.sublime-keymap>
+
+Install sublime's own package manager by following instructions on
+
+ * <http://wbond.net/sublime_packages/package_control/installation>
+
+Then add Sublime packages, e.g.:
+
+ * Stylus
+ * LESS
+ * Coffeescript
+ * Side Bar Enhancements
+ * Sublime Files
+ * Origami
+ * INI
+ * hg4subl
+ * backbone.js
+ * cucumber
+ * cucumber completion
+ * My own <https://bitbucket.org/tcorbettclark/sublime-lint-free>
+
+Then set my preferences from
+
+ * <https://bitbucket.org/tcorbettclark/install/src/tip/Preferences.sublime-settings>
+
+Also open a coffeescript file, go to
+    Preferences->Settings - More->Syntax Specific - User
+and add
+    {
+        "tab_size": 2
+    }
+
+Also may need to edit the "binDir" setting in CoffeeScript.sublime-settings.
+
+
+Stop the global desktop menu
+----------------------------
+
+I like my windows to own their own menus, so:
+
+    sudo apt-get remove appmenu-gtk3 appmenu-gtk appmenu-qt
+
+
+Xmonad for tiling window management
+-----------------------------------
+
+Install [xmonad](http://xmonad.org) with gnome-panel
+
+    sudo apt-get install xmonad suckless-tools xcompmgr gnome-panel
+    mkdir ~/.xmonad
+    cp xmonad.hs ~/.xmonad/
+
+See:
+
+ * <https://bitbucket.org/tcorbettclark/install/src/tip/xmonad.hs>
+
+Add a little eye candy by running `gnome-session-properties` and add the following
+on startup:
+
+    xcompmgr -c -f -D 3 &
+
+Logout, select "Gnome xmonad", and log in again.
+
+
+ssh
+---
+
+Install:
+
+    sudo apt-get install openssh-server
+
+Setup my keys using:
+
+    mkdir -p ~/.ssh
+    chmod 700 .ssh
+    cp /home/tcorbettclark/Private/install/id_dsa* .ssh/
+    chmod 600 .ssh/id_dsa*
+
+
+Xterm
+-----
+
+Allow meta-forward-word to work, and set fonts and colours:
+
+ * Edit.Keyboard Shortcuts - disable all menu access
+ * Set font to Ubuntu Mono size 11
+
+
+Byobu
+-----
+
+I prefer screen to tmux:
+
+    byobu-select-backend screen
+
+
+Node
+----
+
+Get up to date version of node and npm:
+
+    sudo apt-get install python-software-properties
+    sudo add-apt-repository ppa:chris-lea/node.js
+    sudo apt-get update
+    sudo apt-get install nodejs npm
+
+
+UPS (for APC SC420)
+-------------------
+
+(Obviously optional).
+
+Install:
+
+    sudo apt-get install apcupsd
+
+Adjust `/etc/apcupsd/apcupsd.conf`:
+
+    UPSNAME home-ups
+    UPSCABLE smart
+    UPSTYPE apcsmart
+    DEVICE /dev/ttyUSB0 # although check logs
+
+Enable configuration in `/etc/default/apcupsd` and start:
+
+    sudo /etc/init.d/apcupsd start
+
+Wait a few seconds for `/var/log/syslog` to report starting up.
+
+Test with `sudo apcaccess status`.
+
+
+Mercurial
+---------
+
+    cp hgrc ~/.hgrc
+
+
+Git
+---
+
+    git config --global user.name "Timothy Corbett-Clark"
+    git config --global user.email "timothy@corbettclark.com"
+    git config --global credential.helper cache
+    git config --global core.editor "subl -n -w"
+    git config --global color.ui true
+
+
+Nose
+----
+
+Set defaults for python unittest runner:
+
+    cp noserc ~/.noserc
+
+
+Virtualenv and friends
+----------------------
+
+We will perform a little bootstrap dance to obtain the most recent versions of all Python packages (controlled with pip not apt):
+
+    sudo apt-get purge python-pip python-virtualenv virtualenvwrapper ipython
+    sudo apt-get install python-setuptools
+    sudo apt-get install python2.7-dev
+
+Note that ``python-setuptools`` will probably not be the most recent version
+(see [distribute](http://pythonhosted.org/distribute)). We will be installing a
+newer version and removing this one later.
+
+We install ``python2.7-dev`` so that some of pip's can compile C from source.
+
+Use ``easy_install`` to install pip to the system, and then pip to install
+``virtualenv`` and ``invewrapper``:
+
+    sudo easy_install pip
+    sudo pip install virtualenv invewrapper
+
+This also installed a newer version of distribute (in ``/usr/local``), so we can
+remove our slightly older debian packaged version:
+
+    sudo apt-get purge python-setuptools
+
+Then to create a virtual env and install Python packages at user-level (i.e. no
+further global pip installs):
+
+    pew-new whatever
+    pip install ipython distribute nose coverage yanc flake8 grin
+    ...
+
+Some pip packages have deb dependencies. For example, to install pip package
+``psycopg2``, first do:
+
+    sudo apt-get install postgresql-server-dev-9.1
+
+
+Non-free stuff
+--------------
+
+To add non-free stuff like fonts and reading encrypted DVDs, add the
+[Medibuntu](http://www.medibuntu.org) repository by following their instructions. Then:
+
+    sudo apt-get install mplayer mplayer-gui non-free-codecs libdvdcss2
+