安装具有OpenSSL和ReadLine支持的Ruby 2.0


12

我有一个新的Ubuntu 12.04 VM,我想安装Ruby 2.0.0-p0。我可以很容易地安装Ruby,但是无法使用gem。

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

谢谢!

Answers:


9

在您的源位置,cd ext/openssl然后单击确定ruby extconf.rb。这将在ext / openssl目录中生成一个makefile 。只需简单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

1
注意:此答案是用于手动构建和安装Ruby及其扩展模块。请参阅@ chris-d的答案以获取基于apt的纯答案。
Matty K

1
我被困在第三行,试图makeext/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,以便使用openssl和readline在ubuntu 13.04上进行编译,因此我想我可以共享它们

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

对我而言,这是缺少依赖项的情况。

以为我拥有安装ruby所需的所有依赖项,但是我也收到了openSSL和readline错误。

我尝试使用没有root权限的RVM安装ruby,但失败了,但给了我一系列缺少的依赖项。然后,我用软件包管理器安装了依赖项。然后我从一开始就重新尝试从源代码安装ruby,一切正常

对我来说,缺少的依赖项是:

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时,由于openssl,rubygems 2.0的安装可能没有完成。确保您提供了指向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安装成功完成。可能是一种无需重新安装即可修复该路径的更好方法,但是应该这样做。


1
我正在尝试没有RVM或RBENV的安装。只是从源代码编译。因此,。/ configure,make和make安装步骤。谢谢你
Jarrett Meyer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.