从Source安装Ruby on Rails - 无法加载这样的文件 - openssl

时间:2013-08-13 23:58:35

标签: ruby-on-rails openssl ruby-on-rails-4

我在Mac上使用Lion。我正在为Ruby on Rails开发配置我的系统,但我遇到了一些问题。我没有使用brew或其他快捷方式,而是希望从源代码配置Ruby on Rails。所以,这就是我所做的。

已安装的Ruby 2.0

  • 从Ruby网站下载源代码
  • 运行以下代码编译:

    ./ configure --prefix = / Users / user / Applications / ruby​​2

    make install

  • 确保$ PATH文件更新为指向/ Users / user / Applications / ruby​​2 / bin

所以,我可以调用ruby -v或者如果我which ruby,它确实指向我的自定义编译版本的Ruby。

已安装的Node.js

  • 从主网站下载源
  • 运行以下代码编译:

    ./ configure --prefix = / Users / user / Applications / nodejs

    make install

  • 确保$ PATH文件更新为指向/ Users / user / Applications / nodejs / bin

所以,我可以调用node -v或者如果我which node,它确实指向我的自定义编译版本的Ruby。

我也为openssl执行了相同的步骤,也可以从控制台访问它,或者如果which openssl它指向/Users/user/Application/openssl/bin

但是当我执行gem install rails时,我仍然会收到以下错误:

ERROR:  Loading command: install (LoadError)
    cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

知道为什么吗?

系统规格

  • Mac Lion 10.8.4
  • OpenSSL 1.0.1e 2013年2月11日
  • ruby​​ 2.0.0p291
  • Nodejs v0.10.15

2 个答案:

答案 0 :(得分:1)

我设法通过执行以下操作来解决问题。主要问题是我自己编译openssl的步骤。

由于我在64位计算机上,因此必须首先运行以下命令来配置openssl

./configure --prefix=/Users/user/Applications/openssl darwin64-x86_64-cc
./make
./make install

然后重新编译ruby

./configure --prefix=/Users/user/Applications/ruby2 --with-openssl-dir=/Users/user/Applications/openssl
./make
./make install

注意:即使在编译ruby时,它可能会说......选项--with-openssl-dir无效或不存在,请忽略它。

答案 1 :(得分:0)

我对这个错误感到非常糟糕。 最后我完成了它。无论是使用RVM还是没有RVM,都只有一次解决方案。

确保在安装ruby之前首先安装了OpenSSL。

首先你应该找到Ruby的位置:

whereis ruby

将列出系统中存在的所有位置,然后您可以显式删除所有这些位置。或者你可以使用这样的东西:

rm -rf /usr/local/lib/ruby
rm -rf /usr/lib/ruby
rm -f /usr/local/bin/ruby
rm -f /usr/bin/ruby
rm -f /usr/local/bin/irb
rm -f /usr/bin/irb
rm -f /usr/local/bin/gem
rm -f /usr/bin/gem

THEN

sudo apt-get install zlib1g zlib1g-dev build-essential openssl libssl-dev libmysqlclient18 libmysqlclient-dev libyaml-dev curl git-core python-software-properties libpq-dev nodejs

apt-get -y update
apt-get -y install build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev
cd /tmp
wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
tar -xvzf ruby-2.0.0-p247.tar.gz
cd ruby-2.0.0-p247/
./configure --prefix=/usr/local
make
make install

我希望这对你有所帮助。