Sunday, May 27, 2012

Install Ruby on Rails development tools on Ubuntu 12.04

I ran into a number of issues installing this entire stack and then running a 1.9.3 / 3.2.0 application.  I won't detail the errors here.  The order here is somewhat important as the postgresql-server-dev-all was required during bundling.
Please see my next post for information regarding setup for a specific application.

Install postgreSQL

https://help.ubuntu.com/community/PostgreSQL

$ sudo apt-get install postgresql
$ sudo apt-get install postgresql-server-dev-all

Looks like database was initialized and started for me and user postgres was created.  I used ps -ef | grep postgres to figure out where the relavent directories used by my installation where.  The installation created the install in /usr/lib/postgresql/9.1 and the data directory as /var/lib/postgresql/9.1/main.  Configuration files in /etc/postgresql/9.1/main.


User postgres didn't have the postgresql bin directory on the path so I had to create a new .bashrc file for postgres so I don't have to reinitialize variables every time I open a console.  
export PATH=/usr/lib/postgresql/9.1/bin:$PATH
export PGDATA=/var/lib/postgresql/9.1/main

I modified pg_hba.conf to use the trust method so I wouldn't have to supply a password to the database.  This was done since the database.yml file that is part of the project assumes no password needed for db access.

Install adminpack to assist pgAdminIII

$ sudo apt-get install postgresql-contrib-9.1
$ sudo -u postgres psql < /usr/share/postgresql/9.1/extension/adminpack--1.0.sql
$ psql
postgres=# CREATE EXTENSION adminpack;


Install pgAdminIII

$ sudo apt-get install pgadmin3

Install Mercurial

$ sudo apt-get install mercurial

Install Aptana IDE

http://www.aptana.com/products/radrails


Install the Eclipse/Aptana MercurialEclipse plugin

Here's the update site:
http://cbes.javaforge.com/update

Install RVM

$ sudo apt-get update
$ sudo bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ source ~/.rvm/scripts/rvm
$ rvm get head && rvm-smile
$ sudo apt-get install libtool
$ rvm pkg install libyaml
$ rvm install ruby-1.9.3-p194

$ rvm --default use 1.9.3

Install Rails

$ gem install rails -v 3.2.0
$ gem install execjs
$ gem install therubyracer

Install bundler


http://stackoverflow.com/questions/6438116/rails-with-ruby-debugger-throw-symbol-not-found-ruby-current-thread-loaderro



$ rvm get stable
$ rvm use ruby-1.9.3-p194@<gemset_name> --create
$ wget http://rubyforge.org/frs/download.php/75415/ruby-debug-base19-0.11.26.gem
$ wget http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem
$ gem install linecache19-0.5.13.gem
$ export RVM_SRC=$HOME/.rvm/src/ruby-1.9.3-p194
$ gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$RVM_SRC
$ gem install bundler --pre


Dude, where's my gemset?

If the .rvmc file for the project on which your working specifies a gemset that you don't have and/or that you didn't use to install the proper gems you can copy the one you did have setup to match the one specified in the file.  This is especially helpful if you want to use the Terminal in Aptana.
I needed to manually rerun the ruby debug installation because that failed during the copy.

$ rvm gemset list
$ rvm gemset copy 1.9.3-p194@<existing_gemset> 1.9.3-p194@<.rvms_gemset>
$ export RVM_SRC=$HOME/.rvm/src/ruby-1.9.3-p194
$ gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=$RVM_SRC




2 comments:

  1. I have been struggling getting my dev setup working for ruby on rails + ubuntu 12 + postgresql 9.1, specifically the postgresql part. Did you have to do anything else other than what you said here to install postgresql? I have seen many resources on the internet that say to install different packages, and config them in different ways. I have tried your setup and have run into a problem when actually running rails server.

    Currently, I can do rake db:create:all and rake db:migrate and see the db's in pgadminIII, as well as the user needed to connect to the DB locally. However, when I run rails server I get the error:

    could not connect to server: No such file or directory (NameError)
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

    Did you run into this problem?

    ReplyDelete
    Replies
    1. Hello Simon.

      I didn't run into this issue, but it looks like others have (e.g. http://stackoverflow.com/questions/8465508/can-not-connect-to-local-postgresql, http://stackoverflow.com/questions/7861867/why-is-postgresql-9-1-not-working-with-rails-3-0). I'm sure you've been through a lot of the posts detailing this issue and have confirmed the port, etc. that postgres is running on.

      You may also want to check permissions on the /var/run/postgresql/ directory and contents...

      Please let me know if you find a solution to this issue. I'll post here if I run into it ever.

      Delete