【问题标题】:homebrew installation confused matters when rails accessing postgresql当rails访问postgresql时,自制软件安装混淆了
【发布时间】:2022-11-06 18:16:47
【问题描述】:

需要访问安装在 OS X Monterey 上的ffmpeg。项目流如此之大,以至于我错过了与 postgresql 相关的任何内容。

现在,rails 或 rake 命令不会启动

 dlopen(/Users/deploy/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/pg-1.4.1/lib/pg_ext.bundle, 0x0009): Library not loaded: /opt/homebrew/opt/postgresql/lib/libpq.5.dylib (LoadError)
  Referenced from: /Users/deploy/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/pg-1.4.1/lib/pg_ext.bundle
  Reason: tried: '/opt/homebrew/opt/postgresql/lib/libpq.5.dylib' (no such file), '/usr/local/lib/libpq.5.dylib' (no such file), '/usr/lib/libpq.5.dylib' (no such file), '/opt/homebrew/Cellar/postgresql@14/14.5_4/lib/libpq.5.dylib' (no such file), '/usr/local/lib/libpq.5.dylib' (no such file), '/usr/lib/libpq.5.dylib' (no such file) - /Users/deploy/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/pg-1.4.1/lib/pg_ext.bundle

命令brew reinstall libpq 中断,因为

libpq is keg-only, which means it was not symlinked into /opt/homebrew,
because conflicts with postgres formula.

自制软件建议

To reinstall 14.5_4, run:
  brew reinstall postgresql@14

当它运行时

You can migrate to a versioned data directory by running:
  mv -v "/opt/homebrew/var/postgres" "/opt/homebrew/var/postgresql@14"
[...]
This formula has created a default database cluster with:
  initdb --locale=C -E UTF-8 /opt/homebrew/var/postgresql@14
For more details, read:
  https://www.postgresql.org/docs/14/app-initdb.html

To restart postgresql@14 after an upgrade:
  brew services restart postgresql@14

postgres@14 确实重启了Successfully started postgresql@14 (label: homebrew.mxcl.postgresql@14) 但是 rails 命令返回与上面相同的错误。

现在,目录可能已经丢失了现有的数据库?正如/opt/homebrew/opt

lrwxr-xr-x    1 deploy  admin    30 Sep 21 16:12 postgresql -> ../Cellar/postgresql@14/14.5_4
lrwxr-xr-x    1 deploy  admin    30 Sep 21 16:12 postgresql@14 -> ../Cellar/postgresql@14/14.5_4

它出现了文件的结构 确实通过在中间添加另一个目录来确认postgresql/lib/libpq.5.dylib 不存在。

卸载并重新安装 postgresql 不会改变这种行为,所以虽然 psql 可以被调用,但 rails 无法连接。

一个人如何摆脱这个循环?

【问题讨论】:

    标签: postgresql homebrew


    【解决方案1】:

    只需重新安装pg gem。

    gem uninstall pg
    bundle install
    

    它将重新加载必要的库并使用正确且完整的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多