在 AWS EC2 上安装 Ruby 2.0 和 Rails 4.0.0beta [英] Installing Ruby 2.0 and Rails 4.0.0beta on AWS EC2
问题描述
在默认的 Amazon EC2 Linux 安装 (Amazon Linux AMI 2012.09.1) 上安装 Ruby 2.0.0 和 Rails 4.0.0beta1 进展顺利.但是 openssl 妨碍了(例如 http://railsapps.github.com/openssl-certificate-verify-failed.html) 和奇怪的要么阻止 openssl 安装或导致 RubyGem 包管理器安装 rails.
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?
推荐答案
登录您的全新实例:
[19:59:22] paul:~ $ ssh -i ~/.ssh/server.pem ec2-user@your.ip
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2012.09-release-notes/
并模拟根:
$ sudo su -
您从这里以 root 身份登录.应用服务器更新:
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!
现在,这就是它与标准解决方案的不同之处.安装 RVM 但没有分发 ruby:
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
让我们检查是否没有安装 ruby 版本:
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'.
现在,系统上已经安装了 openssl 但与安装程序不兼容:
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"
尝试用这个版本安装ruby2会导致如下错误:
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
虽然你会得到 ruby2,但rubygems 的安装没有成功完成" - 注意警告:Error running 'env GEM_PATH=..."
Although you'll get ruby2, the "Installation of rubygems did not complete successfully" - notice the warning: "Error running 'env GEM_PATH=..."
相反,我们会让 RVM 为我们安装 openssl 的副本(参见 https://rvm.io/packages/openssl/).需要 zlib-devel 包:
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
我们现在可以安装 ruby2:
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]
和 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)
就是这样!
这篇关于在 AWS EC2 上安装 Ruby 2.0 和 Rails 4.0.0beta的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!