使用 Mac Postgres 应用程序很难捆绑 pg

Posted

技术标签:

【中文标题】使用 Mac Postgres 应用程序很难捆绑 pg【英文标题】:Difficulty bundling pg using Mac Postgres App 【发布时间】:2013-11-17 18:14:24 【问题描述】:

我尝试在工作时将我的 Rails 应用程序捆绑到我的 Mac 上。在家里它工作得很好,我之前已经自己解决了它,但是这次无论我尝试什么似乎都没有解决它。

我在运行 bundle/bundle install 时收到的错误如下:

安装 pg (0.17.0) Gem::Installer::ExtensionBuildError: ERROR: 未能构建 gem 原生扩展。

/Users/notrab/.rbenv/versions/2.0.0-p0/bin/ruby extconf.rb

正在检查 pg_config... 否 没有 pg_config... 无论如何都在尝试。如果构建失败,请重试 --with-pg-config=/path/to/pg_config 检查 libpq-fe.h... 否 找不到'libpq-fe.h 标头 * extconf.rb 失败 * 由于某种原因无法创建 Makefile,可能缺乏必要 库和/或标题。检查 mkmf.log 文件以获取更多详细信息。你可以 需要配置选项。

提供的配置选项: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=$opt-dir/include --with-opt-lib --without-opt-lib=$opt-dir/lib --with-make-prog --没有-make-prog --srcdir=。 --curdir --ruby=/Users/notrab/.rbenv/versions/2.0.0-p0/bin/ruby --with-pg --没有-pg --with-pg-config --without-pg-config --with-pg_config --without-pg_config --with-pg-dir --没有-pg-dir --with-pg-include --without-pg-include=$pg-dir/include --with-pg-lib --without-pg-lib=$pg-dir/

Gem 文件将继续安装在 /Users/notrab/Sites/Integrity/vendor/bundle/gems/pg-0.17.0 以供检查。

结果记录到 /Users/notrab/Sites/Integrity/vendor/bundle/gems/pg-0.17.0/ext/gem_make.out

安装 pg (0.17.0) 时出错,Bundler 无法继续。 在捆绑之前确保gem install pg -v '0.17.0' 成功。

我显然已经尝试过跑步

gem install pg -v '0.17.0' 它说它成功但捆绑再次显示相同的错误。

我也试过跑步

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config

文档http://postgresapp.com/documentation 中对此进行了概述,但当我尝试捆绑时会出现同样的错误。

我在兜圈子,不知道怎么解决。

我的 Gemfile 看起来像:

group :development, :test do
    gem "better_errors"
    gem 'meta_request'
    gem 'binding_of_caller'
    gem 'sqlite3'
end

group :production do
    gem 'pg'
end

非常感谢,

杰米

【问题讨论】:

试试这个.. xcode-select --install 遗憾的是,这给了我来自软件更新服务器的错误。 确保您的互联网连接正常。 【参考方案1】:

您是否尝试将export PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH" 添加到您的.bash_profile

【讨论】:

问题似乎在于运行 xcode-select --install 无法在我的 Mac 上运行。 您可以通过运行psql 并验证 psql 环境是否加载来验证 Postgres 命令行工具是否正常工作(因此该导出命令是否正常工作)。 (然后输入\q 退出。) 对于较新版本的 Postgres.app,您可能需要export PATH=/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH 对于任何版本的 Postgres.app,这条路径更好,因为它是未来的证明:/Applications/Postgres.app/Contents/Versions/latest/bin

以上是关于使用 Mac Postgres 应用程序很难捆绑 pg的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 错误 - 捆绑安装

如何为 Mac/Windows 捆绑 Java 应用程序?

Mac 应用程序在启动时崩溃,链接框架未捆绑

捆绑包无效 Mac OS X

如何使用 xcode5 在 Mac 应用程序中对捆绑的可执行文件进行代码签名

在 Mac 上使用捆绑在 Android Studio 中的 JDK 作为 JAVA_HOME