# Handy Links for Establishing a Debian Development Environment

Essential Software Every Software Developer Needs

I'm trying to keep my posts short, but if you want to learn more about a particular topic, I'd be happy to provide more information.

Before doing anything, update apt-get and install the build-essentials.

```bash
sudo apt-get update 
sudo apt-get install git-core curl build-essential openssl libssl-dev
```

Next, we need to set up an SSH key which the first link does well. And I usually install Ruby on Rails, which is optional.

* [SSH Key Gen and Copy](http://www.debian-administration.org/articles/530)
    
* [Edit thisSome Ruby Setup](http://wiki.mediatemple.net/w/%28ve%29:Ruby_on_Rails_on_Debian)
    

## Installing NodeJS

1. Clone the node repo from GitHub by running the following.  
    `git clone git://github.com/ry/node.git`
    
2. Next, we need to install it :)
    
    ```bash
    cd node
    ./configure
    make
    sudo make install
    ```
    
    The terminal output will show whether everything went OK, but if you want to be sure, run `# man node` in the terminal.
    
    `# man node`
    
3. Now Install NPM the Package Manager by running the following command
    
    `curl http://npmjs.org/install.sh | sudo sh npm -v`
    

## phpDocumentor 2

I like my API Docs generated, I'm OCD in my comment style, so I must have it.

[phpDocumentor](http://www.phpdoc.org/)

Here's how I installed it

First, I needed a PHP module

```bash
## Plaase note you will need to use the correct php version number 
sudo su
apt-get install php5-xsl php-pear graphviz
pear channel-discover pear.phpdoc.org
pear install phpdoc/phpDocumentor-alpha

## Now just run

phpdoc -d . -t docs

# And there ya go
```

To conclude, setting up a development environment with Debian requires installing essential software, an SSH key, NodeJS, and Ruby on Rails. Additionally, you can install the phpDocumentor two package to generate API documentation.

This is by no means everything needed to set up your environment that will depend on your project.
