0

最近回到一台计算机(Mac OS X Lion 10.7),我遇到了重复的环境问题,启动了一个新的 Rails 应用程序,然后运行

rake db:create

我得到了这个错误输出(带有--trace):

rake aborted!
dlopen(/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: /usr/lib/libpq.5.dylib
  Referenced from: /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/pg-0.15.1/lib/pg_ext.bundle
  Reason: image not found - /Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/pg-0.15.1/lib/pg_ext.bundle
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/pg-0.15.1/lib/pg.rb:4:in `require'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/pg-0.15.1/lib/pg.rb:4:in `<top (required)>'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
/Users/<username>/rails/<appname>/config/application.rb:7:in `<top (required)>'
/Users/<username>/rails/<appname>/Rakefile:4:in `require'
/Users/<username>/rails/<appname>/Rakefile:4:in `<top (required)>'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load_rakefile'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:637:in `raw_load_rakefile'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:94:in `block in load_rakefile'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:93:in `load_rakefile'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:77:in `block in run'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/<username>/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.1.0/lib/rake/application.rb:75:in `run'
bin/rake:4:in `<main>'

config/application.rb:7 指的是:

Bundler.require(:default, Rails.env)

这是解决几个环境问题的结果,我敢肯定,这些问题会导致问题,但我不知道如何解决。基本上,我在使用自制软件时遇到了问题(brew install wget 不起作用,抱怨它已经被下载了,然后说:

checking for libssl... no
configure: error: --with-ssl=openssl was given, but SSL is not available

所以我卸载了自制软件,卸载了我的外壳(鱼壳),重新安装了两者,并尝试从头开始。回想起来,这可能不是一个好主意。我似乎把事情弄得比现在更糟。

不过, brew doctor 似乎认为大多数事情都还可以。唯一让我觉得可能相关的是:

  /Users/sasha/.rvm/bin/pkg-config

(提出了另一件事——“/usr/bin 出现在 /usr/local/bin 之前”,但这仅适用于 node、npm 和 gcov-4.2 安装,它们似乎与这个 Rails 问题无关。 )

而且我认为 RVM应该有自己的 pkg-config 安装,对吧?

无论如何,OpenSSL 是由 homebrew 安装和更新的,并且看起来不错(它显示在 brew 列表中)。此外,我的 XCode 命令行工具也是最新的。

我想我的问题是是否有人知道发生了什么?我已经尝试重新排序我的路径以遵守 brew doctor、取消/重新安装很多东西、更新所有内容等,但这不会消失。超级令人沮丧,因为没有 rake 工作我基本上什么都做不了。而且我认为这个 dylib 和 openssl 问题可能是相互关联的,所以我想我会把所有这些数据都转储到这里。

有任何想法吗?我真的很感激帮助。

谢谢!

编辑——这是使用带有 pg gem 的 Rails 4.0。

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0.rc1'

# Use postgresql as the database for Active Record
gem 'pg'

如果这有什么不同的话。

更新- 似乎与这个问题有关,我也有。我认为 rake 因为 pg 而不能工作,因为 crpyto/openssl 而不能工作。

4

1 回答 1

0

问题是基于一个莫名其妙的空 libssl.dylib 文件。有一个备份(libssl.dylib.BAK),我只是用它覆盖了空文件,然后——噗——所有问题都消失了。首先不知道这是怎么发生的,但是如果有人遇到类似的问题,我会在 usr/lib/ 中查找 .BAK 文件并(如果有的话)查看相关文件是否为空。

于 2013-07-22T04:29:23.477 回答