Installing Ruby Gems on Dreamhost
Before I move on to posting about installation instructions, some people might wonder why I am using Dreamhost.
Would I recommend Dreamhost for Rails hosting?
I wouldn’t recommend it to people with budget and have little patience. You can go for Heroku, Slicehost and Linode. I’ve tried Linode and it’s a very good option for advanced users, a.k.a, Unix nerds. Clients have used Slicehost and other VPS hosts. Point is, VPS rules. Dreamhost has it PS plans but if you are serious about business go for the so-called cloud services offered by Rackspace. (And just an F.Y.I, Rackspace also owns Slicehost).
**How long have I have been using Dreamhost **
Year 2005. It’s been four years and I am happy enough to be able to deploy applications on shared hosting.
Dreamhost often complains that you don’t have a proper gem environment path when you are installing ruby gems. Here’s how to install your own version of ruby gems on Dreamhost.
Log into your shell account (change the user and domain to match your settings):
Copy your public key to the server:
cd ~ ssh-copy-id -i ~/.ssh/id_dsa.pub firstname.lastname@example.org
Create the necessary directories:
cd ~ mkdir .gems bin lib src
We need to setup a bunch of paths so that each time you log in everything is setup:
echo 'export PATH="$HOME/bin:$HOME/.gems/bin:$PATH"' >> .bash_profile echo 'export RUBYLIB="$HOME/lib:$RUBYLIB"' >> .bash_profile echo 'export GEM_HOME="$HOME/.gems"' >> .bash_profile echo 'export GEM_PATH="/usr/lib/ruby/gems/1.8:$GEM_HOME"' >> .bash_profile echo 'alias gem="nice -n19 ~/bin/gem"' >> .bash_profile source ~/.bash_profile
Next we need to install the latest version of RubyGems and configure it properly:
cd ~/src wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz tar xzvf rubygems-1.3.* cd rubygems-1.3.* ruby setup.rb --prefix=$HOME cd ~/bin ln -s gem1.8 gem cd ~
Now we need to test that gem is installed:
which gem # should return /home/USERNAME/bin/gem gem -v # should return 1.3.0
The gems may have been updated since this article was written so lets update RubyGems
gem update --system
gem install rails And these are just some gems I use for an application: gem sources --add http://gems.github.com/ gem install activemerchant gem install haml-edge gem install fastercsv gem install javan-whenever gem install scrapi gem install geocoder gem install chriseppstein-compass
Specifiy the gem environment on your application
RubyGems Environment: - RUBYGEMS VERSION: 1.3.5 - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux] - INSTALLATION DIRECTORY: /home/USERNAME/.gems - RUBYGEMS PREFIX: /home/USERNAME - RUBY EXECUTABLE: /usr/bin/ruby1.8 - EXECUTABLE DIRECTORY: /home/USERNAME/.gems/bin - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /home/USERNAME/.gems - /usr/lib/ruby/gems/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com/"] - REMOTE SOURCES: - http://gems.rubyforge.org/ - http://gems.github.com/
On your environment.rb file:
ENV['GEM_PATH'] = '/home/USERNAME/.gems:usr/lib/ruby/gems1.8/'