25

Установка Ruby 2.0.0 и Rails 4.0.0beta1 по умолчанию Amazon EC2 Linux (Amazon Linux AMI 2012.09.1) идет гладко. Но openssl мешает (например, http://railsapps.github.com/openssl-certificate-verify-failed.html) и странно либо не позволяет openssl установить, либо заставить менеджера пакетов RubyGem устанавливать рельсы.Установка Ruby 2.0 и Rails 4.0.0beta на AWS EC2

Как я могу обойти эти проблемы?

ответ

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 - 

Вы вошли в систему как суперпользователь отсюда. Применить обновления сервера:

[[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/[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 = ...»

Вместо этого, мы получим РВМ установить копия openssl для нас (см. https://rvm.io/packages/openssl/). Пакет Zlib-разви требуется:

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

Другие вещи, которые следует учитывать. Nokogiri gem не удается установить, если libxml2-devel и libxslt-devel не установлены так: * # yum install libxml2-devel libxslt-devel * –

+1

И текущая версия Passenger не работает с ruby2, поэтому вам нужно установить pre -release, как описано здесь: https://github.com/FooBarWidget/passenger/pull/71#issuecomment-14714397 –

+0

Просто использовал это, чтобы установить рубины 2.0 rails 4.0 для установки на экземпляр AWS EC2. Работал как шарм. Я должен был убедиться, что рубиновый гонщик установлен, иначе он жаловался на отсутствие времени выполнения javascript при попытке рельсов s, но, возможно, вне сферы действия этого ответа – Aron

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 

Install пара пакетов:

$> yum install git pcre pcre-devel 

Clone 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 

Установка рубин:

$> 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.

Elastic Beanstalk Если вы используете Elastic Beanstalk, остановка пассажиру

$> sudo service passenger stop 

Initialize rbenv, добавив следующее /opt/elasticbeanstalk/support/envvars.d/appenv

. /etc/profile.d/rbenv.sh 

Start пассажира

$> sudo service passenger start 
+0

Возможно, вам также потребуется установить openssl-devel. 'yum install openssl-devel' –

+0

После обновления ruby ​​throught rbenv, когда я развертываю приложение с эластичным beanstalk ничего не происходит. Кто-нибудь знает, что может быть? –

+0

Мне пришлось добавить эту команду: «yum install gcc» - нет компилятора c в инструкциях выше (или я пропустил это?) –

Смежные вопросы