josheli

Which ruby?

Playing around with Ruby, Rails, RefineryCMS...

anything installed?

~ $ which ruby

nope, ok...

~ $ sudo apt-get install ruby The following NEW packages will be installed: libreadline5 libruby1.8 ruby ruby1.8

hmm, ruby 1.8? let's try to get the current version, 1.9.2 just for grins...

~ $ sudo apt-get install ruby1.9.2-full

nothing. hmmm, refinerycms.com suggests we use rvm (whatever that is) and so do random interneteers linked to http://rvm.beginrescueend.com/rvm/install/ hmm, wants me to download and run a shell script i think

but we need curl to do that

~ $ sudo apt-get install curl

now we can view the install script and see exactly what it does ...

~ $ curl http://rvm.beginrescueend.com/releases/rvm-install-head

it also needs git, so make sure git installed, yep but if not, you have to apt-get install git-core (not "git" like you would think)

~ $ which git

now we can install rvm ... i think

~ $ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

make sure rvm installed correctly

~ $ type rvm | head -1

it's installed but it doesn't do anything

~ $ rvm

a bunch of text scrolled by really fast when it installed, better go back and read it...

ah, rvm post-install instructions tell us to close current shell and open a new one... and that we need to add something to our bash profile... and that we also need to install the following in order to install ruby... good grief...

~ $ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev

now we can install ruby version 1.9.2

~ $ rvm install 1.9.2

tell rvm to use the ruby we just installed

~ $ rvm use 1.9.2

check we are using the ruby version we just installed

~ $ ruby -v ~ $ which ruby

eh, make this version of ruby the default whenever we invoke ruby in a shell

~ $ rvm --default use 1.9.2

install rails!

~ $ gem install rails -v 3.0.4

here's where it gets confusing ;) not sure when to create the gemset

~ $ rvm gemset create refinery 'refinery' gemset created (/home/dv/.rvm/gems/ruby-1.9.2-p180@refinery).

~ $ cd dev ~/dev $ mkdir refinery-demo ~/dev $ cd refinery-demo/

create .rvmc file that refinerycms.com recommends

~/dev/refinery-demo $ echo 'rvm use --create ruby-1.9.2-p180@refinery' > .rvmrc

but now we have to install a gem ... maybe should have created that gemset after this command?

~/dev/refinery-demo $ gem install refinerycms 23 gems installed

hmm, ok, lets delete that gemset we created earlier...

~/dev/refinery-demo $ rvm gemset delete refinery

...and recreate it now that we installed the refinerycms gem

~/dev/refinery-demo $ rvm gemset create refinery

now generate our refinery rails demo app

~/dev/refinery-demo $ refinerycms rickrockstar Running: /home/dv/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -S rails new "/home/dv/dev/refinery-demo/rickrockstar" --database sqlite3 --skip-test-unit --skip-prototype


Refinery successfully installed in '/home/dv/dev/refinery-demo/rickrockstar'!

Installing gem requirements using bundler.. ... Using rails (3.0.4) ... === ACTION REQUIRED === Now you can launch your webserver using:

cd /home/dv/dev/refinery-demo/rickrockstar rails server

ok, it says we're ready to rickroll! but what's this scary warning? "not yet trusted"?

~/dev/refinery-demo $ cd rickrockstar =============================================================== = NOTICE: = =============================================================== = RVM has encountered a not yet trusted .rvmrc file in the = = current working directory which may contain nasty code. = = = = Examine the contents of this file to be sure the contents = = are good before trusting it! = = = = Press 'q' to exit the reader when finished reading the file = ===============================================================

(press enter to continue when ready)

Examining /home/dv/dev/refinery-demo/.rvmrc complete.

================================================================ = Trusting an .rvmrc file means that whenever you cd into the = = directory RVM will execute this .rvmrc script in your shell = = = = Now that you have examined the contents of the file, do you = = wish to trust this .rvmrc from now on? =

(yes or no) > yes Using /home/dv/.rvm/gems/ruby-1.9.2-p180 with gemset refinery

now lets try to start up rails ... WTF, not installed?

~/dev/refinery-demo/rickrockstar $ rails server The program 'rails' is currently not installed. You can install it by typing: sudo apt-get install rails

double check some stuff...

~/dev/refinery-demo/rickrockstar $ which ruby ~/dev/refinery-demo/rickrockstar $ rvm info

ok, maybe this gemset stuff is confused? lets get out of this 'refinery' gemset somehow get rid of that .rvmrc file...

~/dev/refinery-demo $ mv .rvmrc dotrvmrc

delete the gemset...

~/dev/refinery-demo $ rvm gemset delete refinery

... and try rails again ... yes, it's there

~/dev/refinery-demo $ which rails /home/dv/.rvm/gems/ruby-1.9.2-p180/bin/rails

try to start up the server again... Success!

~/dev/refinery-demo $ cd rickrockstar/ ~/dev/refinery-demo $ rails server => Booting WEBrick

That was easy.