I will give the steps for Ubuntu and Centos, as I have done both, they are very similar, and it might help someone else.

1. Step 1 is to ensure that you have the build-essential package installed. This includes gcc, make, etc. 
2. Install dev headers for other libraries that are used by Postgres/Postgis. This includes libxml, json-c, geos, proj4 and gdal.
3. Get Postgres [source](http://www.postgresql.org/download/) and unzip
4. Get Postgis. `git clone https://github.com/postgis/postgis.git postgis.git`


Ubuntu:

    sudo apt-get install build-essential
    sudo apt-get install libxml2-dev
    sudo apt-get install libjson-c-dev
    sudo apt-get install libgdal-dev
    sudo apt-get install libproj-dev 
    sudo apt-get install libgeos-dev

Centos:
   
    sudo yum groupinstall "Development tools"
    sudo yum install postgresql-devel.x86_64
    sudo yum install libxml2-devel.x86_64
    sudo yum install json-c-devel.x86_64
    sudo yum install geos-devel.x86_64
    sudo yum install proj-devel.x86_64
    sudo yum install gdal-devel.x86_64

Unzip Postgres, cd to unzip dir, run `./configure`. There are some options, and ./configure --help will show you, but in general, the defaults work well. If you are installing multiple version of Postgres, you might want to set `./configure --prefix=/path_to_install`, otherwise the files will go in /usr/local/pgsql/
    
   ./configure 
   sudo gmake

If you have issues with libraries not being found, you might need to fiddle with [ldconfig](http://www.postgresql.org/docs/9.1/static/install-post.html).

    git clone https://github.com/postgis/postgis.git postgis.git
    cd postgis.git
    ./configure --with-pgconfig=/usr/local/bin/pg_config
    make
    sudo make install

There are many options to Postgis configure, and you may need to set the path to geos-config and other libs, especially if you have previous versions of libs. The most important one tends to be the path to pg_config.