Postgres.app 升级,现在 Rails 应用程序无法启动

2024-01-10

我刚刚将 Postgres.app 升级到最新版本 (9.2.4.1),现在无法使用 Foreman 或 Rails 服务器启动我的 Rails 应用程序。

/Users/memoht/Sites/myapp/.gem/ruby/1.9.3/gems/pg-0.15.1/lib/pg.rb:4:in `require': dlopen(/Users/memoht/Sites/myapp/.gem/ruby/1.9.3/gems/pg-0.15.1/lib/pg_ext.bundle, 9): Library not loaded: @executable_path/../lib/libssl.1.0.0.dylib (LoadError)

Referenced from: /Applications/Postgres.app/Contents/MacOS/lib/libpq.dylib

Reason: image not found - /Users/memoht/Sites/myapp/.gem/ruby/1.9.3/gems/pg-0.15.1/lib/pg_ext.bundle


  • 看过了Postgres.app 文档 http://postgresapp.com/documentation

  • 从 9.2.2.0 升级到 9.2.4.1 不是新的次要版本,因此不应涉及 pg_upgrade

  • .bashrc 的 PATH 设置正确PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

  • 卸载并重新安装PG gem。

  • 我错误地认为我需要通过自制程序安装 PostGIS,但实际上是通过 Brew 以及大量其他依赖项自动安装了 Postgres。

如果我将 Postgres.app 版本换回 9.2.2.0,一切都会恢复正常。由于 Postgres.app 是拖放安装,为什么从 9.2.2.0 升级到 9.2.4.1 会导致这种情况?


我找到了一个适合我的解决方案,并且需要最少的黑客/配置。您只需执行一次此操作,它将适用于每个捆绑包安装。将以下内容添加到您的 .bash_profile、.bash_rc 或等效文件中:

export DYLD_FALLBACK_LIBRARY_PATH=/Applications/Postgres.app/Contents/MacOS/lib:$DYLD_LIBRARY_PATH

(假设您在默认位置安装了 Postgres.app)。然后重新启动终端会话并重试。

直接导出到 DYLD_LIBRARY_PATH 可能会导致依赖它的其他应用程序出现严重问题,但使用后备路径可以避免这些问题。

也可以看看:

  • 使用 postgres.app 在 rvm 下需要 pg 时出错 https://stackoverflow.com/questions/16453476/error-requiring-pg-under-rvm-with-postgres-app/16740568#16740568
  • https://github.com/PostgresApp/PostgresApp/issues/109#issuecomment-18387546 https://github.com/PostgresApp/PostgresApp/issues/109#issuecomment-18387546

EDIT:当您尝试运行 psql 时,设置 DYLD_FALLBACK_LIBRARY_PATH 似乎会导致错误。要解决此问题,您可以将以下两行添加到 .bash_profile 中:

alias psql="(. ~/.bash_profile; unset DYLD_FALLBACK_LIBRARY_PATH; psql)";

这是假设您正在使用 bash 并且您的 .bash_profile 位于您的主目录中。如果情况并非如此(或者如果您使用 .bashrc 或其他环境设置而不是 .bash_profile),请更改~/.bash_profile命令的一部分指向环境设置脚本的路径。

别名命令基本上启动一个子 shell,它不会影响您当前的 bash 环境。因此,当它取消设置 DYLD_FALLBACK_LIBRARY_PATH 变量时,它只是临时的。退出 psql 后,将再次设置环境变量,以便 Rails 正常运行。

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

Postgres.app 升级,现在 Rails 应用程序无法启动 的相关文章

  • 可以分配给一个 Heroku 应用程序的最大域名数量?

    我正在与一位客户讨论一个项目 该客户希望他的用户可以通过自己的域名访问该应用程序 如果他们选择的话 可以分配给一个 Heroku 应用程序的自定义域数量是否有限制 The Heroku 文档 https devcenter heroku c
  • 使用heroku.yml部署到Heroku多个docker镜像,收到错误:无法检测到此应用程序的默认语言

    我正在尝试部署一个在本地运行的应用程序docker compose 我遵循了文档 使用 heroku yml 构建 Docker 镜像 https devcenter heroku com articles build docker ima
  • Heroku 中的子目录未使用express.static 提供服务

    我看到一些非常奇怪的行为 其中我的一些文件正确地由我的 Express Node 服务器返回 使用express static 但不包括子目录中的文件 令人沮丧的是 它在本地使用 Node 或 foreman 工作得很好 但在 Heroku
  • 在heroku上部署git子目录

    我必须从非主分支部署 git 子目录 我看过这个答案 https stackoverflow com questions 7539382 how can i deploy from a git subdirectory and to Her
  • 如何为开发和生产指定不同版本的 gem

    我需要有不同版本的 gem 进行开发和生产 因此我将以下内容放入我的 gemfile 中 group development test do gem rspec rails 2 11 0 gem bcrypt ruby 3 1 2 end
  • 图像从部署到heroku的django web应用程序中消失

    我正在开发一个 django 项目 使用 django Rest 框架编写 REST API 以在 Android 应用程序中使用它们 我的主要想法是在 Django 中开发后端 在 Android 中开发前端 项目部署在 Heroku 上
  • Heroku - 将单个表转储并加载到共享 postgres 数据库

    我想知道是否有一种简单的方法可以将一个表的内容转储或加载到heroku共享数据库 postgres Heroku 推荐了 pgbackups 插件 但根据文档它支持转储和加载整个数据库 我需要的只是转储 加载单个表 您可以使用水龙头 htt
  • Heroku 无法启动我的节点应用程序,因为它尝试使用 nodemon 来启动它

    我正在将我的节点应用程序部署到 Heroku 它尝试使用 nodemon 而不是调用它node app js我已经定义了 我的 Procfile 看起来像这样 web npm start 当我推送到 heroku 时 dyno 崩溃并出现以
  • 未知的 Heroku 错误

    我尝试在 heroku 上运行应用程序时遇到以下错误 2011 06 03T11 24 25 07 00 heroku nginx GET HTTP 1 1 2011 06 03T18 24 37 00 00 heroku router E
  • 使用 webpacker 部署到 heroku 后,资产不存在于资产管道中

    我正在使用 Rails 5 2 3 我可以在本地下载 pdf 但Heroku它通过错误 500 错误是 ActionView Template Error 资源 pdf css 不存在于资源管道中 这是我的 Heroku 日志 2019 0
  • Ember 未在生产环境中加载某些图像

    我有一个 Ember cli 1 13 应用程序 它在公共目录中存储了很多图像 现在 它将正确加载除特定组件中的图像之外的所有图像 该组件的调用方式如下 list item url list url name List Name price
  • 如何在heroku上设置django-compressor,离线压缩到S3

    我遵循了在 SO 和不同博客中找到的每一条 QA 建议 在我的开发机器上一切正常 但在 Heroku 上没有任何效果 这是我的设置 DEFAULT FILE STORAGE arena utils MediaRootS3BotoStorag
  • ruby - heroku:找不到命令

    这个问题已经发布了 但答案还没有起作用 我应该顺便提一下 我对红宝石完全陌生 我在做教程时遇到了错误步骤如下 first app master gem install heroku I get Successfully installed
  • 如何让 Rails 资产管道生成源地图?

    我想让 Rails 与编译后的 CoffeeScript 缩小的 JS 一起生成源映射 以便更好地记录错误 不过 网上似乎还没有关于如何执行此操作的全面文档 有人这样做过吗 我使用 Rails 3 2 和 Heroku Rails 支持缩小
  • 静态文件配置不正确

    我已经在 Heroku 上部署了简单的博客应用程序 它运行在Django 1 8 4 我在静态文件方面遇到了一些问题 当打开我的应用程序时 我看到Application Error页面 所以我尝试调试它并发现当我提交到 Heroku 时它无
  • Sentry 与 @sentry/webpack-plugin 和 heroku

    我正在使用 webpack 来构建我的应用程序 它可以在本地使用 sentry webpack plugin 它自动生成版本并将源映射上传到 Sentry 但是 如果我尝试在 Heroku 上构建相同的应用程序 则会出现以下错误 Error
  • Rails 3.2 开发模式不显示带有回溯等的完整错误页面

    我刚刚升级到 Rails 3 2 一切正常 除了错误页面不再显示正常的开发调试信息 相反 它显示标准生产错误页面 白色背景 中间有红色文本 很抱歉 出了点问题 我们已收到有关此问题的通知 我们会尽快查看 Rails 3 2 是否有新的设置或
  • Heroku:无法通过 Bundler 安装 gem

    我尝试使用以下命令将我的 Rails 应用程序推送到 Herokugit push heroku master f命令 我得到这个 Total 0 delta 0 reused 0 delta 0 remote Compressing so
  • Heroku 上的 ZeroMQ

    为什么 Heroku 上不存在它 我想使用 Akka 和分布式队列系统让参与者在不同的测功机上进行通信 RabbitMQ 似乎并不是使用 Akka 的最佳选择 因为需要很多技巧才能与 actor 无缝协作 而不用担心底层队列 尽管如此 最好
  • 如何配置database.yml以部署到Heroku

    我最近升级到了最新版本的Rails 并且不明白如何将应用程序部署到Heroku 这是我的database yml file default default adapter postgresql pool 5 timeout 5000 dev

随机推荐