库未加载:/usr/local/lib/libpq.5.4.dylib运行rake db:create

Sat*_*ish 40 libreadline ruby-on-rails-3.1

我正在开发一个rails应用程序.
使用postgresql-9.1.2-1-osx.dmg安装了Postgresql
安装了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存在.它不是.
因此,它应该存在于系统中的其他位置,或者我不知道,如果我需要为此安装任何其他软件.

有人建议吗?

S.D*_*.D. 134

我使用的是 OSX Monterey(M2 芯片组)并且遇到了类似的问题。运行(注意版本)有帮助:

sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/lib/libpq.5.dylib
Run Code Online (Sandbox Code Playgroud)

brew update、brew link --force、brew uninstall &&brew install,..都没有。

  • 这可能是由于“brew”将“postgres”重命名为“postgres@14”。 (9认同)
  • 如果使用基于 Apple Silicon 的 Mac,您应该使用以下命令创建符号链接: `sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/ lib/libpq.5.dylib` (4认同)
  • 在更新到 14.5 时,我必须在蒙特利做同样的事情。但我没有使用`sudo` (2认同)
  • 谢谢你!这对我在 Apple M1 Pro、蒙特雷 12.0.1 上有效 (2认同)

小智 84

尝试运行

bundle pristine pg
Run Code Online (Sandbox Code Playgroud)

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

  • 这对我在 Rails 7、MacOs Monterey 上有用 (4认同)

awe*_*khh 63

如果你用自制软件升级PostgreSQL(brew update && brew upgrade),那么只需卸载pg gem:

gem uninstall pg
bundle install
Run Code Online (Sandbox Code Playgroud)

并且路径将为您纠正.无需卸载整个PostgreSQL集群.

  • 如果您尝试了上述操作但仍然收到此错误,“brew link libpq --force”解决了我的问题。 (4认同)
  • gem uninstall pg 和捆绑安装对我有用! (3认同)
  • 恕我直言,这应该是正确的答案 (3认同)
  • `brew update && brew Upgrade` 对我有用,我什至不需要卸载并重新安装 pg。 (2认同)

sha*_*ala 39

对于我(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
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这拯救了我的日子(蒙特雷,英特尔) (2认同)

小智 14


\n

我在 M1 芯片上遵循了类似于SD 的答案。按照 Patryk Szczepa\xc5\x84ski 的建议链接到/usr/local/lib/libpq.5.dylib对我来说不起作用,所以我创建了一个空的/opt/homebrew/opt/postgresql/lib符号链接

\n
mkdir /opt/homebrew/opt/postgresql\nmkdir /opt/homebrew/opt/postgresql/lib\nsudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.14.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib\n
Run Code Online (Sandbox Code Playgroud)\n

macOS 蒙特利 12.5.1

\n

苹果M1 Pro芯片

\n
\n


Tai*_*san 14

这在 MacOS Monterey 中对我有用

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

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
Run Code Online (Sandbox Code Playgroud)


小智 8

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

通过 pip 安装 psycopg2-binary 后解决。

pip install psycopg2-binary
Run Code Online (Sandbox Code Playgroud)

我希望这对那里的人有用


小智 8

sudo ln -s /opt/homebrew/opt/postgresql/lib/postgresql@14/libpq.5.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
Run Code Online (Sandbox Code Playgroud)


Jer*_*nch 6

对我来说以下工作有效:

ln -s /opt/homebrew/opt/postgresql/lib/postgresql@14/* /opt/homebrew/opt/postgresql/lib/
Run Code Online (Sandbox Code Playgroud)


Eri*_*oss 5

在切换到PostgresApp并通过删除现有的PostgreSQL版本后,我遇到了这个问题

brew remove postgres
Run Code Online (Sandbox Code Playgroud)

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

brew install postgres
Run Code Online (Sandbox Code Playgroud)

通过在我的.bash_profile中添加以下内容,我能够保留PostgresApp的使用

export PATH="/Applications/Postgres.app/Contents/MacOS/bin:/usr/local/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

您也可以尝试运行:

brew doctor
Run Code Online (Sandbox Code Playgroud)

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

此错误也影响了我使用Paperclip gem的能力,因为它导致ImageMagick失败并出现相同的错误.

(使用OS X 10.8.2)


K M*_*lam 5

在我的 Rails 7 应用程序中升级到新的 ruby​​ 版本(2.7 到 3.1.2)后,我遇到了同样的问题。就我而言,我必须在 Rails 应用程序中卸载并重新安装 pg gem:

gem uninstall pg
bundle install # (which installed the pg gem with native extensions)
Run Code Online (Sandbox Code Playgroud)

这为我解决了这个问题。希望这可以帮助任何面临同样问题的人。


小智 5

一个简单的解决方案是卸载 pg gem:

gem uninstall pg

和跑步

bundle install

就是这样!


Sat*_*ish 3

在我发布这个问题一段时间后,我发现它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

这解决了当时的问题。