У меня свежая ВМ Ubuntu 12.04, и я хотел бы установить Ruby 2.0.0-p0. Я могу достаточно легко установить Ruby, но не могу заставить работать гемы.
$ 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.
Спасибо!
В вашем исходном местоположении cd ext/openssl
, а затем ruby extconf.rb
. Это сгенерирует make-файл в каталоге ext / openssl . Просто make && sudo make install
соберите расширение ruby openssl и установите .so в соответствующее место.
То же самое ext/readline
для поддержки 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
Я столкнулся с той же проблемой, мне пришлось установить следующие два пакета
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
для меня это был случай недостающих зависимостей.
я думал, что у меня были все зависимости, требуемые устанавливать рубин, но я также получал openSSL и readline ошибку.
я попытался установить рубин с 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
При установке 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
Установка rubygems успешно завершена. Может быть, лучший способ исправить этот путь без переустановки, но это следует сделать.