回答

62

登錄到你的品牌新的實例:

[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/ 

和冒充根:

$ sudo su - 

你從這裏以root身份登錄。應用服務器更新:

[[email protected] ~]# yum update 
... 
Complete! 
[[email protected] ~]# yum groupinstall "Development Tools" 
... 
Install  72 Package(s) 
... 
Complete! 

現在,這是它與標準解決方案不同的地方。安裝RVM但沒有紅寶石的分佈:

[[email protected] ~]# \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 

讓我們來看看,沒有紅寶石版本安裝:

[[email protected] ~]# rvm list 

rvm rubies 


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

現在,OpenSSL是已經安裝在系統上,但不符合設置:

[[email protected] ~]# openssl version 
OpenSSL 1.0.0k-fips 5 Feb 2013 

[[email protected] ~]# openssl version -d 
OPENSSLDIR: "/etc/pki/tls" 

嘗試安裝此版本的ruby2將導致以下錯誤:

[[email protected] ~]# 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/[email protected]:/usr/local/rvm/gems/ruby-2.0.0-p0:/usr/local/rvm/gems/ruby-2[email protected] 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的安裝沒有成功完成」 - 請注意警告:「錯誤運行「ENV GEM_PATH = ...」

相反,我們會得到RVM安裝openssl的副本給我們(見https://rvm.io/packages/openssl/)。 zlib的-devel軟件包要求:

[[email protected] ~]# yum install zlib-devel 
... 
Installed: 
    zlib-devel.x86_64 0:1.2.5-7.11.amzn1                     

Complete! 
[[email protected] ~]# 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:

[[email protected] ~]# 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 [email protected] pristine. 

[[email protected] ~]# ruby -v 
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] 

而且rails4:

[[email protected] ~]# gem install rails -v 4.0.0beta1 
... 
28 gems installed 
[[email protected] ~]# 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) 

這是所有鄉親!

+3

其他事情要考慮。如果沒有安裝libxml2-devel和libxslt-devel,那麼Nokogiri gem將無法安裝,因此:*#yum install libxml2-devel libxslt-devel * – 2013-03-20 21:48:12

+1

目前版本的Passenger並不適用於ruby2,因此您需要安裝pre - 如下所述:https://github.com/FooBarWidget/passenger/pull/71#issuecomment-14714397 – 2013-03-20 23:19:45

+0

剛剛使用它在AWS EC2實例上安裝ruby 2.0 rails 4.0安裝。像魅力一樣工作。我確實需要確定ruby racer是否安裝完成,否則它會抱怨在嘗試運行rails時丟失了javascript運行時,但可以說這個回答的範圍之外 – Aron 2013-12-26 07:52:44

16

這是一個rbenv的變種。

SSH到你的品牌新的實例:

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

https://aws.amazon.com/amazon-linux-ami/2012.09-release-notes/ 
There are 16 security update(s) out of 57 total update(s) available 
Run "sudo yum update" to apply all updates. 
Amazon Linux version 2013.03 is available. 
[jimjh ~]$ ruby --version 
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux] 

冒充根和應用服務器更新:

$> sudo su - 
$> yum update 

包夫婦安裝:

$> yum install git pcre pcre-devel 

克隆rbenv

$> git clone git://github.com/sstephenson/rbenv.git /usr/local/rbenv 

創建以下文件:

# /etc/profile.d/rbenv.sh 
export RBENV_ROOT=/usr/local/rbenv 
export PATH="${RBENV_ROOT}/bin:$PATH" 
eval "$(rbenv init -)" 

安裝ruby-build

$> . /etc/profile 
$> git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build 

安裝Ruby:

$> rbenv install 2.0.0-p195 # wait ... 
$> rbenv global 2.0.0-p195 
$> rbenv rehash 

更新RubyGems的安裝乘客:

$> gem update --system 
$> gem install bundler  
$> gem install passenger 

直通客車安裝nginx的:

$> passenger start 

在寫作的時候,乘客的最新版本是4.0.0,它與紅寶石2.0.0工作。

彈性魔豆 如果使用的是彈性魔豆,加制止乘客

$> sudo service passenger stop 

初始化rbenv以下到/opt/elasticbeanstalk/support/envvars.d/appenv

. /etc/profile.d/rbenv.sh 

開始乘客

$> sudo service passenger start 
+0

您可能還需要安裝openssl-devel。 'yum install openssl-devel' – 2013-10-14 17:41:15

+0

在通過rbenv更新ruby之後,當我用彈性beanstalk部署應用程序時,沒有任何反應。任何人都知道會發生什麼? – 2014-04-01 13:36:13

+0

我不得不添加這個命令 - 「yum install gcc」 - 上面的指令中沒有c編譯器(或者我錯過了它?) – 2015-01-19 22:31:50