25

Die Installation von Ruby 2.0.0 und Rails 4.0.0beta1 auf der standardmäßigen Amazon EC2 Linux-Installation (Amazon Linux AMI 2012.09.1) verläuft reibungslos. Aber openssl kommt in den Weg (zB http://railsapps.github.com/openssl-certificate-verify-failed.html) und seltsam entweder verhindern, dass openssl installiert wird oder den RubyGem-Paket-Manager von der Installation von Schienen verursacht.Installation von Ruby 2.0 und Rails 4.0.0beta auf AWS EC2

Wie kann ich diese Probleme umgehen?

Antwort

62

Melden Sie sich Ihre Marke neue Instanz:

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

und imitieren die Wurzel:

$ sudo su - 

Sie werden von hier aus als root angemeldet. Wenden Sie die Serveraktualisierungen an:

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

Jetzt ist es, wo es sich von der Standardlösung unterscheidet. Installieren Sie RVM aber ohne eine Verteilung von Rubin:

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

Lassen Sie uns prüfen, dass keine Ruby-Version installiert ist:

[[email protected] ~]# rvm list 

rvm rubies 


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

nun OpenSSL ist bereits auf dem System installiert ist aber nicht kompatibel mit dem Setup:

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

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

Versuch ruby2 mit dieser Version in dem folgenden Fehler führt zu installieren:

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

Obwohl Sie ruby2 bekommen, die „Installation von rubygems wurde nicht erfolgreich abgeschlossen“ - der Warnhinweis: „Fehler beim Ausführen der env GEM_PATH‘ = ...“

Stattdessen werden wir bekommen RVM ein installieren Kopie von openssl für uns (siehe https://rvm.io/packages/openssl/). Die zlib-devel Paket ist erforderlich:

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

Und 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) 

Das ist alles, Leute

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

Wir jetzt ruby2 installieren können!

+3

stoppen Andere Dinge zu beachten. Nokogiri-Juwel kann nicht installiert werden, wenn libxml2-devel und libxslt-devel nicht installiert sind: * # yum install libxml2-devel libxslt-devel * –

+1

Und die aktuelle Version von Passenger funktioniert nicht mit ruby2, also müssen Sie ein Pre installieren Release-Version wie hier beschrieben: https://github.com/FooBarWidget/passenger/pull/71#issuecomment-14714397 –

+0

Wurde nur verwendet, um eine Installation von ruby ​​2.0 rails 4.0 auf einer AWS EC2 Instanz zu installieren. Lief wie am Schnürchen. Ich musste sicherstellen, dass der Rubin Racer installiert wurde, sonst beschwerte es sich über das Fehlen einer Javascript-Laufzeit beim Versuch, Schienen s, aber wohl außerhalb des Bereichs dieser Antwort – Aron

16

Hier ist eine Variante mit rbenv.

SSH in die brandneue Instanz:

__| __|_ ) 
    _| ( / 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] 

die Wurzel Imitieren und Server-Updates anwenden:

$> sudo su - 
$> yum update 

Installieren paar Pakete:

$> yum install git pcre pcre-devel 

Clone rbenv:

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

Erstellen Sie die folgende Datei:

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

installieren ruby-build:

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

Rubin Install:

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

aktualisieren rubygems und installieren Beifahrer:

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

Installieren nginx durch Beifahrer:

$> passenger start 

Zum Zeitpunkt des Schreibens ist die neueste Version von Passagier 4.0.0, die mit Ruby 2.0.0 funktioniert.

Elastic Beanstalk Wenn Sie Elastic Beanstalk verwenden, Passagier

$> sudo service passenger stop 

initialisieren rbenv, indem Sie das folgende /opt/elasticbeanstalk/support/envvars.d/appenv

. /etc/profile.d/rbenv.sh 

starten Passagier

$> sudo service passenger start 
+0

Sie müssen möglicherweise auch openssl-devel installieren. 'yum install openssl-devel' –

+0

Nach der Aktualisierung von Ruby through rbenv passiert nichts, wenn ich die App mit elastischem Bohnenstrunk ausstatte. Weiß jemand was los ist? –

+0

Ich musste diesen Befehl hinzufügen - "yum install gcc" - kein c Compiler in den obigen Anweisungen (oder habe ich es vermisst?) –