【问题标题】:Library not loaded: /usr/local/lib/libpq.5.4.dylib未加载库:/usr/local/lib/libpq.5.4.dylib
【发布时间】:2012-02-19 20:42:46
【问题描述】:

我正在开发一个 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 是否存在。它没有。
因此,它应该存在于系统中的其他地方,或者我不知道是否需要为此安装任何其他软件。

请给任何人建议?

【问题讨论】:

    标签: postgresql macos homebrew ruby-on-rails-3.1 libreadline


    【解决方案1】:

    如果您已升级

    • PostgreSQL 与 homebrew(brew 更新 && brew 升级),
    • macOS(例如,从 Catalina 到 BigSur)

    然后只需卸载 pg gem:

    gem uninstall pg
    bundle install
    

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

    【讨论】:

    • brew update && brew upgrade 为我工作,我什至不需要卸载并重新安装 pg。
    • 如果不是 pg,您可以使用 gem uninstall --all 删除所有 gem,然后安装 bundler,然后运行 ​​bundle install 再次安装所有内容(假设您有 Gemfile)跨度>
    • @ianstarz 为什么要做这么大的事情? ;-)
    • 如果您尝试了上述方法但仍然出现此错误,brew link libpq --force 解决了我的问题。
    【解决方案2】:

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

    brew remove postgres
    

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

    brew install postgres
    

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

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

    你也可以试试跑步:

    brew doctor
    

    因为它提醒我注意这一点以及一些其他错误。

    这个错误也影响了我使用 Paperclip gem 的能力,因为它导致 ImageMagick 失败并出现同样的错误。

    (使用 OS X 10.8.2)

    【讨论】:

      【解决方案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

      这样就解决了问题。

      【讨论】:

      • 在 OS 10.15.7 中,我无法使用chown username libpq.5.4.dylib。自己的用户是root,我无法更改。你是怎么做到的?
      【解决方案4】:

      就我而言,卸载/重新安装 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。

      【讨论】:

        【解决方案5】:

        这不是问题的直接答案,但可能会经常出现

        如果您使用自制软件升级了 PostgreSQL,可能会感兴趣的另外两个案例:

        1. 您过去曾对 gem 版本进行过一些修剪
        2. 您的应用程序较旧,无法使用最新版本的 pg(我有一个 rails 2 应用程序在 pg 0.17 失败并几乎杀死服务器:mkmr.log 呈指数增长...尝试 200GB!)

        您实际上可能有许多版本的 pg 可供依赖

        当你跑步时

        gem uninstall pg
        

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

        【讨论】:

          【解决方案6】:

          尝试brew prune,然后重新安装

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-09-02
            • 2021-05-25
            • 2014-02-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-07-14
            • 2020-04-19
            相关资源
            最近更新 更多