Встановіть Ruby 2.0 за допомогою підтримки OpenSSL та ReadLine


12

У мене свіжий Ubuntu 12.04 VM, і я хотів би встановити Ruby 2.0.0-p0. Я можу встановити Рубі досить легко, але я не можу змусити дорогоцінні камені працювати.

$ gem install bundler
ERROR:  Loading command: install (LoadError)
cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

У мене встановлений відкритий SSL, тому я точно не впевнений, у чому проблема.

$ sudo apt-get install libssl1.0.0 libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libssl-dev is already the newest version.
libssl1.0.0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Аналогічно

$ which openssl
/usr/bin/openssl

Якщо я повернусь до інсталяції, є два рядки, які мене стосуються.

$ sudo make install
Failed to configure openssl. It will not be installed.
Failed to configure readline. It will not be installed.

Дякую!

Відповіді:


9

У своєму джерелі, cd ext/opensslа потім ruby extconf.rb. Це створить makefile в каталозі ext / openssl . Просто make && sudo make installстворити розширення ruby openssl та встановити .so у відповідне місце.

Ditto ext/readlineдля підтримки читання ліній.

Тоді ви повинні мати можливість makeрубінувати належним чином.

Редагувати : якщо я був недостатньо зрозумілий:

pushd ext/openssl
ruby extconf.rb
make && sudo make install
popd

pushd ext/readline
ruby extconf.rb
make && sudo make install
popd

make
sudo make install

1
Примітка: ця відповідь призначена для ручного складання та встановлення Ruby та його модулів розширення. Дивіться відповідь @ chris-d для чистої влучної відповіді.
Matty K

1
Я застряг на третій лінії, намагаючись makeв ext/openssl: Те *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.ж саме для ext/readline.
ZX9

@ ZX9 У мене була така ж проблема, тут рішення працювало на мене.
jgon

5

Я зіткнувся з тим же питанням, мені довелося встановити наступні два пакети

libssl-dev
libreadline-dev 

насправді я виявив, що мені потрібно встановити наступні пакети, щоб отримати ruby ​​2.0.0 та postgres 9.2 для компіляції на ubuntu 13.04 з openssl та readline, тому я подумав, що поділюсь ними

sudo apt-get -y update
sudo apt-get install -y make g++
sudo apt-get install -y curl git-core python-software-properties
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev
sudo apt-get install -y libgdbm-dev libreadline6-dev libncurses5-dev
sudo apt-get install -y libpq-dev libffi-dev

3

для мене це був випадок відсутніх залежностей.

Я думав, що у мене були всі залежності, необхідні для встановлення рубіну, але я теж отримував помилку openSSL та readline.

Я намагався встановити ruby ​​з RVM без привілеїв root, які не вдалися, але дали мені список відсутніх залежностей. Потім я встановив залежності з менеджером пакетів. Потім я знову спробував встановити рубін з джерела з самого початку, і все працювало нормально

Для мене залежності, які були відсутні, були:

patch libyaml-devel autoconf gcc-c++ readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel

але вони можуть бути для вас різними.

оновлення: спочатку я не пам’ятаю, де саме я знайшов цей список, але швидкий пошук знайшов подібні списки на наступних сторінках, які також можуть вам допомогти:

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-centos-6-with-rvm

http://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-ruby-on-rails-on-centos-ubuntu-fedora-from-source.html


0

Встановлюючи ruby ​​2.0, можливо, встановлення rubygems 2.0 не завершилось нормально, через openssl. Переконайтеся, що ви надали дійсний шлях до файлу конфігурації openssl; ви можете:

find . -type f -name "openssl.cnf"

шлях зазвичай $ HOME / .rvm / usr або $ HOME / .rvm / usr / ssl

Потім

[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1

Переконайтеся, що установка рубігем успішно завершена. Можливо, це буде кращим способом виправити цей шлях без перевстановлення, але це слід зробити.


1
Я намагаюся встановити без RVM або RBENV. Просто складання з джерел. Отже ./конфігуруйте, зробіть та зробіть кроки встановлення. Дякую, хоча.
Jarrett Meyer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.