【发布时间】:2013-12-01 05:46:36
【问题描述】:
在 osx maverick 上安装 rails 时出现以下错误。 OpenSSL 已经安装。有谁知道如何解决这个问题?
$ gem install rails 错误:执行 gem 时...(Gem::Exception) 无法要求 openssl,安装 OpenSSL 并重建 ruby(首选)或使用非 HTTPS 源
【问题讨论】:
标签: ruby-on-rails
在 osx maverick 上安装 rails 时出现以下错误。 OpenSSL 已经安装。有谁知道如何解决这个问题?
$ gem install rails 错误:执行 gem 时...(Gem::Exception) 无法要求 openssl,安装 OpenSSL 并重建 ruby(首选)或使用非 HTTPS 源
【问题讨论】:
标签: ruby-on-rails
您可能需要根据these instructions from chruby about Ruby 2.1.2 更新您的 OpenSSL CA 捆绑包:
安装 2.1.2
注意:MRI 2.1.2 需要 OpenSSL >= 1.0.1。
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.bz2
tar -xjvf ruby-2.1.2.tar.bz2
cd ruby-2.1.2
./configure --prefix=/opt/rubies/ruby-2.1.2
make
sudo make install
注意:OS X 用户必须 update their OpenSSL CA cert bundle 并正确设置 ./configure --with-opt-dir 以针对 Homebrew 的库进行编译:
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.bz2
tar -xjvf ruby-2.1.2.tar.bz2
cd ruby-2.1.2
./configure --prefix="$HOME/.rubies/ruby-2.1.2" --with-opt-dir="$(brew --prefix openssl):$(brew --prefix readline):$(brew --prefix libyaml):$(brew --prefix gdbm):$(brew --prefix libffi)"
make
sudo make install
对我来说,只需通过 Homebrew update my OpenSSL CA cert bundle 然后使用 ruby-install 重新安装 Ruby 就足够了
brew tap raggi/ale
brew install openssl-osx-ca
ruby-install ruby 2.1.2
在我执行上述步骤后,问题就停止了。
【讨论】:
对我来说...我曾尝试使用ruby-install 安装ruby 2.1.2(因为我使用chruby 作为我的ruby 版本管理器)。我曾尝试使用自制软件等手动安装openssl。但我仍然无法让ruby-install 成功构建ruby 2.1.2。过去我在安装 rubies 时也遇到过类似的问题,ruby-build 然后工作了,所以我在这里试了一下,它工作了!据我了解,ruby-build 是rbenv 使用的安装程序。
我所做的是:
rm -rf ~/.rubies/ruby-2.1.2(这是安装我的 ruby 的地方。)brew remove --force opensslbrew install ruby-buildruby-build 2.1.2 ~/.rubies/ruby-2.1.2成功了! ruby-build 在成功安装奇怪的依赖项方面似乎比 ruby-install 聪明得多。在这一点上我已经完成了ruby-install - 它给我带来了太多问题! (brew remove --force ruby-install)
【讨论】:
我也遇到过类似的问题。 just yesterday 引入了对 rvm 的修复,它还没有与 rvm master 分支合并,所以你是这样做的:
rvm get branch /bugfix/3923_set_osx_brew_openssl_compiler_config
rvm install 2.4.0
gem install rails
如果这对你有用,go to the issue 并告诉开发人员你对他的努力有多么感激:
【讨论】:
由于最近从 1.0 到 1.1 的 openssl 版本自动更新,我最近在安装 ruby 时遇到了困难。 我发现 ruby 版本 1.0。
我什至无法将 openssl 恢复到 1.0 版本,因为其他库依赖于它。
除了下面给出的解决方案之外,没有其他解决方案对我有用:
brew install rbenv/tap/openssl@1.0
rvm reinstall 1.9.3-p551 --with-openssl-dir='/usr/local/opt/openssl@1.0'
gem update --system
现在我的 ruby 使用 openssl 1.0 运行,而所有其他库都在默认的 openssl 1.1 版本上运行。
【讨论】:
安全服务器是这个问题的原因。您可以使用以下命令安装它:
gem install rails --source http://rubygems.org
默认情况下,它使用 https://rubygem.org 作为 gem 的来源。
$ gem install rails ERROR: While executing gem ... (Gem::Exception) Unable to
require openssl, install OpenSSL and
rebuild ruby (preferred) or use non-HTTPS sources
所以我们可以指定一个源,http//:rubygems.org,它是一个非 HTTPS 源。
【讨论】: