ruby-on-rails – Ruby on Rails / PostgreSQL – 启动服务器时
Heyo.如果在另一个帖子中回答了这个问题,我会提前道歉.我搜索了网站,但没有找到答案.但是,最接近的相关问题是
Ruby on Rails / PostgreSQL – Library not Loaded error when starting server- libq.5.dylib,但它从未得到解决,答案对我没有帮助.
我正在尝试在我的Mac OSX 10.6.8上运行PostgreSQL.我已经安装了Ruby 1.9.3p392和Rails 3.2.13. 由于我的10.6.8和PostGresApp需要10.7,我尝试使用手册安装程序(v9.2.3)安装PG:http://www.enterprisedb.com/products-services-training/pgdownload 我首先将它安装到默认路径:/Library/PostgreSQL/9.2/.然后我安装了pg gem(PATH = $PATH:/Library/PostgreSQL/9.2/bin sudo gem install pg).当我尝试使用rails s启动我的localhost时,我收到了以下错误. 经过一些阅读,我猜测它可能是一个路径错误,所以我删除了pg gem,然后使用了postgresql卸载程序.然后我重新安装了/users/stewartmccoy/Library/PostgreSQL/9.2/…中的pg,然后重新安装了pg gem.但我仍然得到同样的错误. 有关如何正确安装PostgreSQL并让我的rails服务器运行的任何想法? stewart-mccoys-macbook:footy_subs stewartmccoy$rails s /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg.rb:4:in `require': dlopen(/Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg_ext.bundle,9): Library not loaded: libpq.5.dylib (LoadError) Referenced from: /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg_ext.bundle Reason: image not found - /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg_ext.bundle from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg.rb:4:in `<top (required)>' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler.rb:132:in `require' from /Users/stewartmccoy/Code/footy_subs/config/application.rb:13:in `<top (required)>' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:53:in `require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:53:in `block in <top (required)>' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>' from script/rails:6:in `require' from script/rails:6:in `<main>' stewart-mccoys-macbook:footy_subs stewartmccoy$gem uninstall pgSuccessfully uninstalled pg-0.14.1 stewart-mccoys-macbook:footy_subs stewartmccoy$PATH=$PATH:/users/stewartmccoy/Library/PostgreSQL/9.2/bin sudo gem install pg Password: Fetching: pg-0.14.1.gem (100%) Building native extensions. This could take a while... Successfully installed pg-0.14.1 1 gem installed Installing ri documentation for pg-0.14.1... Installing RDoc documentation for pg-0.14.1... stewart-mccoys-macbook:footy_subs stewartmccoy$rails s /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg.rb:4:in `require': dlopen(/Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg_ext.bundle,9): Library not loaded: libpq.5.dylib (LoadError) Referenced from: /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg_ext.bundle Reason: image not found - /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg_ext.bundle from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/pg-0.14.1/lib/pg.rb:4:in `<top (required)>' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:72:in `block (2 levels) in require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `each' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:70:in `block in require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `each' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler/runtime.rb:59:in `require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392@global/gems/bundler-1.3.4/lib/bundler.rb:132:in `require' from /Users/stewartmccoy/Code/footy_subs/config/application.rb:13:in `<top (required)>' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:53:in `require' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:53:in `block in <top (required)>' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap' from /Users/stewartmccoy/.rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>' from script/rails:6:in `require' from script/rails:6:in `<main>' 解决方法
错误的关键部分是:
Library not loaded: libpq.5.dylib (LoadError) 这表明ruby在运行时找不到libpq.为了解决这个问题,您应该将DYLD_LIBRARY_PATH环境变量设置为指向PostgreSQL安装的lib目录,无论是全局还是用于启动Rails的包装脚本.有关更多信息,请参见this superuser question. Pg gem可以在编译和安装期间找到库,因为pg_config可执行文件位于PATH上,并使用它来查找libpq.它似乎不存储在运行时使用的路径,因此您必须自己设置运行时动态链接器. 一个简单的包装脚本(如果你不想修改你的全局环境)是这样的: #!/bin/bash export DYLD_LIBRARY_PATH=/path/to/pg/lib exec rails "$@" “$@”基本上意味着“将所有参数传递给此脚本,就像它们直接传递到此处一样”.它保留了正确的引用,实质上意味着rails命令无法告诉你没有直接运行它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |