安装支持 OpenSSL 和 ReadLine 的 Ruby 2.0

安装支持 OpenSSL 和 ReadLine 的 Ruby 2.0

我有一个新的 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.

谢谢!

答案1

在您的源位置,cd ext/openssl然后ruby extconf.rb。这将生成一个 makefile在 ext/openssl 目录中. 只需这样make && sudo make install就可以构建 rubyopenssl扩展,并将.so 安装到适当的位置。

ext/readline对于 readline 支持也同样如此。

然后你就能够make正确地使用 ruby​​ 了。

编辑:如果我说的不够清楚:

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

答案2

我遇到了同样的问题,我必须安装以下两个包

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

对我来说,这是一个缺少依赖项的情况。

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

我尝试使用 RVM 在没有 root 权限的情况下安装 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

答案4

安装 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

确保 ruby​​gems 安装成功完成。 这可能是修复该路径而不重新安装的更好方法,但这应该可以做到。

相关内容