# Configuration for development and test environments (GNU/Linux) ## Git Git is officially maintained in Debian/Ubuntu: ``` sudo apt-get install git ``` ## Ruby Ruby versions packaged in official repositories are not suitable to work with consul (at least Debian 7 and 8), so we'll have to install it manually. The preferred method is via rvm: (only the multi user option installs all dependencies automatically, as we use 'sudo'.) ### As local user: ``` curl -L https://get.rvm.io | bash -s stable ``` ### For all system users ``` curl -L https://get.rvm.io | sudo bash -s stable ``` and then add your user to rvm group ``` sudo usermod -a -G rvm ``` and finally, add rvm script source to user's bash (~/.bashrc) (this step it's only necessary if you still can't execute rvm command) ``` [[ -s /usr/local/rvm/scripts/rvm ]] && source /usr/local/rvm/scripts/rvm ``` with all this, you are suppose to be able to install a ruby version from rvm, as for example version 2.3.0: ``` sudo rvm install 2.3.0 ``` ## Bundler with ``` gem install bundler ``` or there is more methods [here](https://rvm.io/integration/bundler) that should be better as: ``` gem install rubygems-bundler ``` ## PostgreSQL (>=9.4) PostgreSQL version 9.4 is not official in debian 7 (wheezy), in 8 it seems to be officially maintained. So you have to add a repository, the official postgresql works fine. Add the repository to apt, for example creating file */etc/apt/sources.list.d/pgdg.list* with: ``` deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main ``` afterwards you'll have to download the key, and install it, by: ``` wget https://www.postgresql.org/media/keys/ACCC4CF8.asc apt-key add ACCC4CF8.asc ``` and install postgresql ``` apt-get update apt-get install postgresql-9.4 ``` ## Ghostscript ``` apt-get install ghostscript ``` ## Cloning the repository Now, with all the dependencies installed, clone the Consul repository: ``` git clone https://github.com/consul/consul.git cd consul bundle install cp config/database.yml.example config/database.yml cp config/secrets.yml.example config/secrets.yml ``` Perhaps it's needed to create a superuser rol with password in postgresql, and write it in */config/database.yml* 'user:' and 'password:' fields. Also, it seems that postgresql use as default an unix socket for localhost communications. If we encounter problems creating database (connection problems) we can change in */config/database.yml* the line: ``` host: localhost ``` for: ``` host: /var/run/postgresql ``` After this: ``` rake db:create rake db:setup rake db:dev_seed RAILS_ENV=test bin/rake db:setup ```