Ruby on Rails / PostgreSQL - 启动服务器时出现库未加载错误

2023-11-22

嘿哟。如果这个问题已在另一个线程中得到回答,我提前表示歉意。我搜索过该网站,但没有找到答案。然而,最接近的相关问题是Ruby on Rails / PostgreSQL - 启动服务器时出现库未加载错误 - libq.5.dylib,但它从未解决,答案对我没有帮助。

我正在尝试让 PostgreSQL 在我的 Mac OSX 10.6.8 上运行。我已经安装了 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启动我的本地主机,我收到以下错误。

经过一番阅读,我猜测这可能是路径错误,所以我删除了 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环境变量指向libPostgreSQL 安装的目录,无论是全局的还是在用于启动 Rails 的包装脚本中。看这个超级用户问题了解更多信息。

The Pggem 在编译和安装过程中可以找到该库,因为pg_config可执行文件位于PATH它用它来找到libpq。它似乎不存储运行时使用的路径,因此您必须自己设置运行时动态链接器。

一个简单的包装脚本(如果您不想修改全局环境)类似于:

#!/bin/bash
export DYLD_LIBRARY_PATH=/path/to/pg/lib 
exec rails "$@"

“$@”基本上意味着“将所有参数传递给该脚本,就像它们直接传递到这里一样”。它保留了正确的引用,本质上意味着 Rails 命令无法告诉您没有直接运行它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby on Rails / PostgreSQL - 启动服务器时出现库未加载错误 的相关文章

随机推荐

  • 来自 ADFS 服务器的 URL 重定向

    我在 ASP net Web 应用程序中使用 ADFS 进行身份验证 STS服务器将浏览器重定向到https test contoso com 首先将客户端重定向到 STS 时 STS 不允许任何返回 URL 参数 是否可以将浏览器重定向到
  • 整数除法的行为是什么?

    例如 int result result 125 100 or result 43 100 结果总是分区的底线吗 定义的行为是什么 结果总是分区的底线吗 定义的行为是什么 不完全的 它向 0 舍入 而不是向下舍入 6 5 5 乘法运算符 6
  • Java 的“Parallel.For”?

    我想知道是否有并行 For相当于 Java 的 net 版本吗 如果有人可以提供一个例子吗 谢谢 我想最接近的事情是 ExecutorService exec Executors newFixedThreadPool SOME NUM OF
  • jquery 中的按钮文本切换

    当我单击 pushme 按钮时 它会将其文本变为 不要推我 当再次单击按钮时 我想再次将文本变为 推我 我怎样才能做到这一点
  • 避免应用程序激活并在单击其上的按钮时集中注意力 - Windows API 或 Qt

    情况 无边框 QDialog 成功地保持在其他应用程序之上 问题是当单击此始终位于顶部的应用程序窗口时 会发生以下情况 单击的始终位于顶部的应用程序被激活 单击的始终位于顶部的应用程序窗口会窃取先前活动 聚焦的应用程序的焦点 是否有可能当单
  • YouTube API loadVideoById startSeconds 不起作用

    我为我嵌入的一些 YouTube 视频创建了一个章节选择器 此方法曾经有效 但最近已停止 我不明白发生了什么事 我使用他们推荐的格式 但使用 loadVideoById 来显示每一章 div class wrapper div div di
  • 具有 MVVM 模式的数字文本框

    我见过数字的实现TextBox后面的代码WPF 我们如何做到这一点MVVM图案 在 WPF 中 如果将 TextBox 绑定到 Decimal 或 Int 属性 它将仅接受该 int 或decimal 否则它将显示红色边框 表明它在绑定中没
  • 什么是真与假?它与 True 和 False 有何不同?

    我刚刚了解到有truthy and falsypython 中的值与正常值不同True and False 有人可以深入解释一下什么吗truthy and falsy价值观是 我应该在哪里使用它们 有什么区别truthy and True价
  • 为什么 ${basedir} NLog 配置不起作用?

    为什么我无法在生产服务器中使用 basedir nlog config 如果我使用fileName basedir logs shortdate log nlog 不记录消息信息 但是如果我更改为类似的内容fileName C logs s
  • dockerfile中的EXPOSE和服务YAML中的TARGETPORT与Pod中实际运行的端口有什么关系?

    dockerfile中的EXPOSE和服务YAML中的TARGETPORT与Pod中实际运行的端口有什么关系 在我的 dockerfile 中 expose 8080 在我的部署中 ports containerPort 8080 在我的服
  • fork() 后 libCurl SSL 错误

    我正在开发一个 FUSE 驱动程序 当我将其作为守护进程运行时 没有 f 或 d 标志 通过 libcurl 发出的所有 https 请求都会失败 我能够通过发出 https 请求 分叉并返回父进程 然后从新进程发出第二个请求来重现该错误
  • 查找关联记录存在的位置

    如何仅选择那些具有关联标签记录的员工 换句话说 仅选择具有一个或多个与其关联的标签记录的员工记录 class Employee lt ActiveRecord Base has and belongs to many tags end cl
  • 在 ASP.NET 中正确执行锁定

    我有一个 ASP NET 站点 其搜索功能相当慢 我想通过使用查询作为缓存键将结果添加到缓存一小时来提高性能 using System using System Web using System Web Caching public cla
  • Spring Boot应用程序立即退出

    当我运行我的spring bootapplication 它立即退出 与exit code 0 有了这个 Spring Boot v2 1 0 RELEASE 2018 11 27 14 08 31 219 INFO 94920 resta
  • iOS 检测蓝牙连接/断开

    即使我的应用程序处于后台 当蓝牙设备与 iOS 连接或断开连接时 是否可以收到通知 在 Android 上 我使用ACTION ACL CONNECTED and ACTION ACL DISCONNECTED事件 但我找不到 iOS 的等
  • Chrome 特定的 CSS 问题将表格单元格设置为显示:块

    I found 这个问题那似乎有我想要的 我正在使用 chrome 32 0 1700 102 甚至fiddle第一个答案对我来说效果很好 但是 当我将以下 html 放入新文件并在 chrome 中打开它时 tds 的 计算样式 选项卡仍
  • Flutter 中是否有任何回调告诉我“构建”功能何时完成?

    我的屏幕上有一个 listView 我已经给它附加了一个控制器 我能够调用我的端点 接收响应 解析它并插入行中 ListView 应该自动滚动 确实如此 但不是以完美的方式 我总是落后一个项目 这是我的代码 override Widget
  • Serilog :选择在运行时记录哪个接收器

    我将在 net 标准 2 0 库中实现 Serilog 我正在寻找一种方法来选择每个日志行应使用哪个接收器 假设我们在配置中定义了 2 个接收器 控制台和文件 Log Logger new LoggerConfiguration Minim
  • 为什么用c源代码调试时GDB会“跳回来”

    我正在调试 goldfish android 内核 版本 3 4 带有内核源代码 现在我发现 gdb 有时会在行之间来回跳转 例如考虑如下 c 源代码 char XXX int a if 当我到达if子句 我输入n它会跳回到int a部分
  • Ruby on Rails / PostgreSQL - 启动服务器时出现库未加载错误

    嘿哟 如果这个问题已在另一个线程中得到回答 我提前表示歉意 我搜索过该网站 但没有找到答案 然而 最接近的相关问题是Ruby on Rails PostgreSQL 启动服务器时出现库未加载错误 libq 5 dylib 但它从未解决 答案