Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
605 views
in Technique[技术] by (71.8m points)

amazon web services - Installing Ruby 2.0 and Rails 4.0.0beta on AWS EC2

Installing Ruby 2.0.0 and Rails 4.0.0beta1 on the default Amazon EC2 Linux install (Amazon Linux AMI 2012.09.1) goes smoothly. But openssl gets in the way (eg http://railsapps.github.com/openssl-certificate-verify-failed.html) and weird either prevent openssl from getting installed or causing the RubyGem package manager from installing rails.

How can I work around these problems?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Log into your brand new instance:

[19:59:22] paul:~ $ ssh -i ~/.ssh/server.pem [email protected]

   __|  __|_  )
   _|  (     /   Amazon Linux AMI
  ___|\___|___|

  https://aws.amazon.com/amazon-linux-ami/2012.09-release-notes/

and impersonate the root:

$ sudo su -

You are logged in as root from here. Apply the server updates:

[root@ip-xx ~]# yum update
...
Complete!
[root@ip-xx ~]# yum groupinstall "Development Tools"
...
Install      72 Package(s)
...
Complete!

Now, this is where it differs from the standard solution. Install RVM but without a distribution of ruby:

[root@ip-xx ~]# curl -L https://get.rvm.io | bash -s stable

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   184  100   184    0     0    135      0  0:00:01  0:00:01 --:--:--   183
100 11861  100 11861    0     0   7180      0  0:00:01  0:00:01 --:--:-- 64113
Downloading RVM from wayneeseguin branch stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   124  100   124    0     0    161      0 --:--:-- --:--:-- --:--:--   185
100 1615k  100 1615k    0     0   258k      0  0:00:06  0:00:06 --:--:--  401k

Installing RVM to /usr/local/rvm/
    Creating group 'rvm'

# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Installation of RVM in /usr/local/rvm/ is almost complete:

  * First you need to add all users that will be using rvm to 'rvm' group,
    and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`.

  * To start using RVM you need to run `source /etc/profile.d/rvm.sh`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# root,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and
#   more enjoyable!!!
#
# ~Wayne

Let's check that no ruby version is installed:

[root@ip-xx ~]# rvm list

rvm rubies


# No rvm rubies installed yet. Try 'rvm help install'.

Now, openssl is already installed on the system but is incompatible with setup:

[root@ip-xx ~]# openssl version
OpenSSL 1.0.0k-fips 5 Feb 2013

[root@ip-xx ~]# openssl version -d
OPENSSLDIR: "/etc/pki/tls"

Attempting to install ruby2 with this version will result in the following error:

[root@ip-xx ~]# rvm install 2.0.0 -- --with-openssl-dir=/etc/pki/tls
Fetching yaml-0.1.4.tar.gz to /usr/local/rvm/archives
######################################################################## 100.0%
Extracting yaml to /usr/local/rvm/src/yaml-0.1.4
Prepare yaml in /usr/local/rvm/src/yaml-0.1.4.
Configuring yaml in /usr/local/rvm/src/yaml-0.1.4.
Compiling yaml in /usr/local/rvm/src/yaml-0.1.4.
Installing yaml to /usr/local/rvm/usr
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.0.0-p0, this may take a while depending on your cpu(s)...
ruby-2.0.0-p0 - #downloading ruby-2.0.0-p0, this may take a while depending on your connection...
######################################################################## 100.0%
ruby-2.0.0-p0 - #extracting ruby-2.0.0-p0 to /usr/local/rvm/src/ruby-2.0.0-p0
ruby-2.0.0-p0 - #extracted to /usr/local/rvm/src/ruby-2.0.0-p0
ruby-2.0.0-p0 - #configuring
ruby-2.0.0-p0 - #compiling
ruby-2.0.0-p0 - #installing 
Retrieving rubygems-2.0.3
######################################################################## 100.0%
Extracting rubygems-2.0.3 ...
Removing old Rubygems files...
Installing rubygems-2.0.3 for ruby-2.0.0-p0 ...
Error running 'env GEM_PATH=/usr/local/rvm/gems/ruby-2.0.0-p0:/usr/local/rvm/gems/ruby-2.0.0-p0@global:/usr/local/rvm/gems/ruby-2.0.0-p0:/usr/local/rvm/gems/ruby-2.0.0-p0@global GEM_HOME=/usr/local/rvm/gems/ruby-2.0.0-p0 /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby /usr/local/rvm/src/rubygems-2.0.3/setup.rb', please read /usr/local/rvm/log/ruby-2.0.0-p0/rubygems.install.log
Installation of rubygems did not complete successfully.
Saving wrappers to '/usr/local/rvm/bin'.
ruby-2.0.0-p0 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/gem'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/erb'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ri'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/rdoc'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/testrb'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/rake'? y
ruby-2.0.0-p0 - #importing default gemsets, this may take time ...
Install of ruby-2.0.0-p0 - #complete

Although you'll get ruby2, the "Installation of rubygems did not complete successfully" - notice the warning: "Error running 'env GEM_PATH=..."

Instead, we'll get RVM install a copy of openssl for us (see https://rvm.io/packages/openssl/). The zlib-devel package is required:

[root@ip-xx ~]# yum install zlib-devel
...
Installed:
  zlib-devel.x86_64 0:1.2.5-7.11.amzn1                                                                                  

Complete!
[root@ip-xx ~]# rvm pkg install openssl
Fetching openssl-1.0.1c.tar.gz to /usr/local/rvm/archives
Extracting openssl to /usr/local/rvm/src/openssl-1.0.1c
Configuring openssl in /usr/local/rvm/src/openssl-1.0.1c.
Compiling openssl in /usr/local/rvm/src/openssl-1.0.1c.
Installing openssl to /usr/local/rvm/usr

Please note that it's required to reinstall all rubies:

    rvm reinstall all --force

Updating openssl certificates

We can now install ruby2:

[root@ip-xx ~]# rvm reinstall 2.0.0 --with-openssl-dir=/usr/local/rvm/usr
Removing /usr/local/rvm/src/ruby-2.0.0-p0...
Removing /usr/local/rvm/rubies/ruby-2.0.0-p0...
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.0.0-p0, this may take a while depending on your cpu(s)...
ruby-2.0.0-p0 - #downloading ruby-2.0.0-p0, this may take a while depending on your connection...
ruby-2.0.0-p0 - #extracting ruby-2.0.0-p0 to /usr/local/rvm/src/ruby-2.0.0-p0
ruby-2.0.0-p0 - #extracted to /usr/local/rvm/src/ruby-2.0.0-p0
ruby-2.0.0-p0 - #configuring
ruby-2.0.0-p0 - #compiling
ruby-2.0.0-p0 - #installing 
Removing old Rubygems files...
Installing rubygems-2.0.3 for ruby-2.0.0-p0 ...
Installation of rubygems completed successfully.
Saving wrappers to '/usr/local/rvm/bin'.
ruby-2.0.0-p0 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/gem'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/erb'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ri'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/rdoc'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/testrb'? y
cp: overwrite `/usr/local/rvm/rubies/ruby-2.0.0-p0/bin/rake'? y
ruby-2.0.0-p0 - #importing default gemsets, this may take time ...
Install of ruby-2.0.0-p0 - #complete 
Making gemset ruby-2.0.0-p0 pristine.
Making gemset ruby-2.0.0-p0@global pristine.

[root@ip-xx ~]# ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

And rails4:

[root@ip-xx ~]# gem install rails -v 4.0.0beta1
...
28 gems installed
[root@ip-xx ~]# gem list

*** LOCAL GEMS ***

actionmailer (4.0.0.beta1)
actionpack (4.0.0.beta1)
activemodel (4.0.0.beta1)
activerecord (4.0.0.beta1)
activerecord-deprecated_finders (0.0.3)
activesupport (4.0.0.beta1)
arel (4.0.0.beta2)
atomic (1.0.1)
bigdecimal (1.2.0)
builder (3.1.4)
bundler (1.3.4)
erubis (2.7.0)
hike (1.2.1)
i18n (0.6.4)
io-console (0.4.2)
json (1.7.7)
mail (2.5.3)
mime-types (1.21)
minitest (4.3.2)
multi_json (1.7.1)
polyglot (0.3.3)
psych (2.0.0)
rack (1.5.2)
rack-test (0.6.2)
rails (4.0.0.beta1)
railties (4.0.0.beta1)
rake (10.0.3, 0.9.6)
rdoc (4.0.0, 3.12.2)
rubygems-bundler (1.1.1)
rvm (1.11.3.6)
sprockets (2.9.0)
sprockets-rails (2.0.0.rc3)
test-unit (2.0.0.0)
thor (0.17.0)
thread_safe (0.1.0)
tilt (1.3.6)
treetop (1.4.12)
tzinfo (0.3.37)

That's all folks!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...