Setting up Ruby on Rails on a Redhat Enterprise Linux Rackspace Cloud Server
| development, geek, rails, ruby, work1. Compile Ruby from source.
First, install all the libraries you’ll need to compile Ruby.
yum install gcc zlib libxml2-devel yum install gcc yum install zlib yum install zlib-devel yum install openssl yum install openssl-devel
My particular application has problems with Ruby 1.9.2, so I compiled Ruby 1.8.7 instead. This can be downloaded from ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p174.tar.gz
Unpack the source code for Ruby. Configure and install it with:
./configure make make install
Add /usr/local/bin
to the beginning of your PATH
.
2. Install Ruby Gems.
Downloadcd the latest Ruby Gems package and unpack it. I got mine from http://production.cf.rubygems.org/rubygems/rubygems-1.7.1.tgz . Change to the directory and run:
ruby setup.rb
3. Install Rails and rake
gem install rails rake
If all goes well, you should now have Rails and rake.
Troubleshooting:
*builder-2.1.2 has an invalid value for @cert_chain*
Downgrade Rubygems to version 1.6.2 with the following command.
gem update --system 1.6.2
sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade!
Compile sqlite from source:
wget http://www.sqlite.org/sqlite-amalgamation-3.7.0.1.tar.gz tar zxvf sqlite-amalgamation-3.7.0.1.tar.gz cd sqlite-amalgamation-3.7.0.1 ./configure make make install gem install sqlite3
LoadError: no such file to load – openssl
- Install openssl and openssl-devel.
yum install openssl openssl-devel
- Go to your Ruby source directory and run the following commands:
cd ext/openssl ruby extconf.rb make make install
LoadError: no such file to load – readline
yum install readline-devel
Change to your Ruby source directory and run the following:
cd ext/readline ruby extconf.rb make make install
You can’t access port 80 from another computer.
Port 80 (the web server port) is blocked by default on Redhat Enterprise Linux 5.5. Edit /etc/sysconfig/iptables
to allow it, adding a line like:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Make sure you put it above the REJECT all
line.
Load your changes with
/etc/init.d/iptables restart
3 comments
j3ssl33
2011-07-23T14:53:37ZStuck in Step #3. I'm getting this error. T_T
--
ERROR: Could not find a valid gem 'rails' (>= 0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SocketError: getaddrinfo: Temporary failure in name resolution (http://rubygems.org/latest_...
--
I tried to open the link, http://rubygems.org/latest_..., and it is accessible.
What could be the cause this problem?
Sacha Chua
2011-07-23T17:07:15ZAre you behind a proxy, by any chance? This forum thread might help.
j3ssl33
2011-07-25T04:47:01ZNo, my server is not behind a proxy. I have a public IP on it.
I quote Nick (@qrush), working at RubyGems:
"there's been problems with cloudfront to ec2 dns...no idea what's up there :("
This is not something I want to hear from them. There should be at least a workaround on this.