库未加载:/usr/local/lib/libpq.5.4. dylib

我正在开发一个轨道应用程序。
使用 postgreql-9.1.2-1-osx. dmg 安装 Postgreql
已安装 pg gem。
然后当我执行 rake db:create 得到以下错误-

Dlopen (/Users/sathishvc/. rvm/gems/ruby-1.9.3-head@knome-vivacious/gems/pg-0.12.2/lib/pg _ ext. bundle, 9) : 库未加载:/usr/local/lib/libpq.5.4. dylib

检查 /usr/local/lib/libpq.5.4.dylib是否存在。
所以,它应该存在于系统的其他地方,或者我不知道,如果我需要安装任何其他的软件。

有人能给点建议吗?

47697 次浏览

在我发布这个问题后的一段时间,我发现 libpq.5.4.dylib驻留在 /Library/PostgreSQL/9.1/lib/中。
所以,我创建了以下链接:
lrwxr-xr-x 1 sathishvc admin 43 Jan 28 23:40 /usr/local/lib/libpq.5.4.dylib -> /Library/PostgreSQL/9.1/lib/libpq.5.4.dylib.

这就解决了问题。

在切换到 PostgreApp 并通过以下方式删除现有的 PostgreSQL 版本之后,我遇到了这个问题

brew remove postgres

我最终通过重新安装 PostgreSQL 来解决这个问题

brew install postgres

通过将以下内容添加到我的. bash _ profile,我能够保留 PostgreApp 的使用

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:/usr/local/bin:$PATH"

你也可以试试跑步:

brew doctor

因为它提醒我这个以及一些额外的错误。

这个错误也影响了我使用回形针宝石的能力,因为它导致 ImageMagick 在同样的错误中失败。

(使用 OS X 10.8.2)

如果你升级了

  • PostgreSQL 与自制(酿造更新 & 酿造升级) ,
  • MacOS (例如从 Catalina 到 BigSur)

然后简单地卸载 pg gem:

gem uninstall pg
bundle install

并且路径将为您更正。不需要卸载整个 PostgreSQL 集群。

在我的例子中,卸载/重新安装 gem 没有帮助。但是我在我的 ~/.bash_profile中添加了 PostgreSQL 库路径到 $DYLD_LIBRARY_PATH环境变量:

export DYLD_LIBRARY_PATH=/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH

如果你也安装了 MySQL,这一行看起来像:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:/Library/PostgreSQL/9.3/lib:$DYLD_LIBRARY_PATH

当然,请注意 PostgreSQL 路径中的版本号,在撰写本文时它是9.3。 我在 Mac OS X 10.6上使用 RVM,Ruby 2.0.0,pg gem 0.17.0。

尝试 brew prune,然后重新安装

这不是对这个问题的直接回答,但可能经常出现

如果您已经用自制程序升级了 PostgreSQL,那么另外两个案例可能会引起您的兴趣:

  1. 您在过去已经进行了一些 gem 版本的修剪
  2. 您的应用程序比较旧,不能使用最新版本的 pg (我有一个 Rails 2应用程序在 pg 0.17时出错,差点杀死服务器: mkmr.log 指数级增长... ... 试试200GB!)

你可能实际上有很多版本的 pg 可以依赖

当你奔跑的时候

gem uninstall pg

如果您有多个版本,系统会询问您要删除哪个版本。但是那个名单可能对你有用!作为一个替代 awenkhh 的答案,你可以停止在那里,并重置您的宝石,以一个可接受的版本

通过 EDBinstaller 安装的 Postgreql 13.4和通过 Stackbuilder 安装的 Postgis 也出现了同样的问题。没有一个解决方案对我有效,所以我只是

  1. 通过 brew 安装 postgreql 和 postgis
  2. 将/Library/PostgreSQL/13/lib 中的 raster2pgsql 文件(保存在另一个文件夹中以防万一)替换为 postgis 酿造版本中的 raster2pgsql

不确定如何影响其他文件在 postgreql 和 postgis 的 EDBversion。

我使用的是 OSX Monterey (M2芯片组) ,遇到过类似的问题:

sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/lib/libpq.5.dylib

酿造更新,酿造链接-强制,酿造卸载 & & 酿造安装,. . 所有没有。


我用 M1芯片跟踪了类似 S.D. 的答案的东西。链接到 /usr/local/lib/libpq.5.dylib的建议由帕特里克 Szczepa 斯基没有为我工作,所以我创建了一个空的 /opt/homebrew/opt/postgresql/lib和系统链接

mkdir /opt/homebrew/opt/postgresql
mkdir /opt/homebrew/opt/postgresql/lib
sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.14.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib

MacOS Monterey 12.5.1

芯片苹果 M1专业版


我有这样的问题,在我运行 brew doctor的时候,我发现:

Warning: Broken symlinks were found. Remove them with `brew cleanup`: /usr/local/lib/libpq.5.dylib

运行 brew cleanup修好了。

对我来说(MacOS Monterey)文件最终出现在: /usr/local/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib

因此,要修复初始错误,首先创建它正在查找的目录,然后创建指向现有文件的符号链接:

sudo mkdir -p /usr/local/opt/postgresql/lib/
sudo ln -s /usr/local/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/opt/postgresql/lib/libpq.5.dylib

我在蒙特雷的时候就是这么做的

首先,我创建了它正在查找的目录,然后创建了一个指向现有文件的符号链接:

sudo mkdir -p /usr/local/opt/postgresql/lib/
sudo ln -s /usr/local/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/opt/postgresql/lib/libpq.5.dylib

试着逃跑

bundle pristine pg

就是这样,你可以在这里找到解决方案: https://github.com/Homebrew/homebrew-core/issues/109644

对我来说,以下方法奏效了:

ln -s /opt/homebrew/opt/postgresql/lib/postgresql@14/* /opt/homebrew/opt/postgresql/lib/

在我的 Mackintosh 上,我在配置 postgreql 作为 django 的默认数据库时遇到了这个问题。

通过 pip 安装 Psycopg2二进制后解决了这个问题。

pip install psycopg2-binary

我希望这对外面的人有用

sudo ln -s /opt/homebrew/opt/postgresql/lib/postgresql@14/libpq.5.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib

我在 macOS Ventura 13.0.1中遇到了这个问题

通过自制软件安装 postgreql@14

然后:

mkdir /opt/homebrew/opt/libpq/

mkdir /opt/homebrew/opt/libpq/lib

sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.14.dylib /opt/homebrew/opt/libpq/lib/libpq.5.dylib

之后的工作:)