我有一个全新的 Ubuntu 12.04 VM,我想安装 Ruby 2.0.0-p0。我能够很容易地安装 Ruby,但我无法让 gems 工作。
$ 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
Run Code Online (Sandbox Code Playgroud)
我已经安装了开放式 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.
Run Code Online (Sandbox Code Playgroud)
相似地,
$ which openssl
/usr/bin/openssl
Run Code Online (Sandbox Code Playgroud)
如果我回到安装,有两行与我有关。
$ sudo make install
Failed to configure openssl. It will not be installed.
Failed to configure readline. It will not be installed.
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 10
在您的源位置,cd ext/openssl然后ruby extconf.rb. 这将在 ext/openssl 目录中生成一个 makefile 。只需make && sudo make install构建 ruby openssl扩展,并将 .so 安装到适当的位置。
同上阅读线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
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,我不得不安装以下两个包
libssl-dev
libreadline-dev
Run Code Online (Sandbox Code Playgroud)
事实上,我发现我必须安装以下软件包才能使用 openssl 和 readline 在 ubuntu 13.04 上编译 ruby 2.0.0 和 postgres 9.2,所以我想我会分享它们
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
Run Code Online (Sandbox Code Playgroud)
小智 0
安装 ruby 2.0 时,由于 openssl 的原因,rubygems 2.0 安装可能没有完成。确保提供 openssl 配置文件的有效路径;你可以:
find . -type f -name "openssl.cnf"
Run Code Online (Sandbox Code Playgroud)
路径通常是 $HOME/.rvm/usr 或 $HOME/.rvm/usr/ssl
然后
[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1
Run Code Online (Sandbox Code Playgroud)
确保 rubygems 安装成功完成。可能是无需重新安装即可修复该路径的更好方法,但这应该可以做到。