用Mavericks在Mac上安装PG gem是不可能的

Jea*_*ean 95 postgresql gem ruby-on-rails osx-mavericks

我正在尝试安装pg gem以便再次使用我的rails项目.但我得到这个错误:

构建原生扩展.这可能需要一段时间...错误:安装pg时出错:错误:无法构建gem原生扩展.

/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If
Run Code Online (Sandbox Code Playgroud)

构建失败,请再次尝试使用--with -pg-config =/path/to/pg_config检查libpq-fe.h ...否找不到'libpq-fe.h header *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 --without-make-prog --srcdir =.--curdir --ruby =/Users/jeanosorio/.rvm/rubies/ruby​​-2.0.0-p247/bin/ruby​​ --with-pg --without-pg --with-pg-config --without-pg -config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir}/include - -with-pg-lib --without-pg-lib = $ {pg-dir} /

Gem文件将保留在/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0中进行检查.结果记录到/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out

我尝试了在stackoverflow上找到的所有内容,但我仍然遇到此错误.

如果我尝试使用brew安装postgresql,我会得到以下警告:

警告:postgresql-9.2.4已经安装,它只是没有链接

如果我尝试链接

brew链接postgresql链接/usr/local/Cellar/postgresql/9.2.4 ...警告:无法链接postgresql.取消链接...

错误:无法符号链接文件:/usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7/usr/local/share/man/man7不可写.您应该更改其权限.

请帮忙

注意:我已经为小牛队安装了命令行工具.


如果我使用自制程序卸载并尝试再次安装,我收到此错误:

==>正在下载http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2

################################################## ################ 100.0%

==>修补修补文件src/pl/plpython/Makefile修补文件contrib/uuid-ossp/uuid-ossp.c ==> ./configure --prefix =/usr/local/Cellar/postgresql/9.2.4 - datadir =/usr/local/Cellar/postgresql/9.2.4/share/postgresql --docdir =/usr/local/Cellar/p ==> make install-world ==>警告

构建笔记

如果PostgreSQL 9的版本失败并且您安装了版本8.x,则可能需要先删除以前的版本.请参阅:https:
//github.com/mxcl/homebrew/issues/issue/2510

创建/升级数据库

如果这是您的第一次安装,请使用以下命令创建数据库:initdb/usr/local/var/postgres -E utf8

要从PostgreSQL的先前主要版本(9.2之前版本)迁移现有数据,请参阅:http:
//www.postgresql.org/docs/9.2/static/upgrading.html

加载扩展程序

默认情况下,Homebrew构建所有可用的Contrib扩展.要查看所有可用扩展的列表,请从psql命令行运行:
SELECT*FROM pg_available_extensions;

要加载任何扩展名,请导航到所需的数据库并运行:CREATE EXTENSION [extension name];

例如,要在当前数据库中加载tablefunc扩展,请运行:CREATE EXTENSION tablefunc;

有关CREATE EXTENSION命令的更多信息,请参阅:http:
//www.postgresql.org/docs/9.2/static/sql-createextension.html有关扩展的更多信息,请参阅:http:
//www.postgresql.org/文档/ 9.2 /静态/ contrib.html

其他

有些机器可能需要配置共享内存:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC 安装postgres gem时,建议使用ARCHFLAGS:ARCHFLAGS =" - arch x86_64"宝石安装pg

要安装没有sudo的gem,请参阅Homebrew wiki.

要在登录时启动postgresql:ln -sfv /usr/local/opt/postgresql/*.plist~/ Library/LaunchAgents然后立即加载postgresql:launchctl load~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist或,如果你不想/需要launchctl,你可以运行:pg_ctl -D/usr/local/var/postgres -l /usr/local/var/postgres/server.log start警告:无法链接postgresql.取消链接...错误:brew link步骤未成功完成公式已构建,但未符号链接到/ usr/local您可以使用`brew link postgresql'==>汇总/usr/local/Cellar/postgresql/9.2再次尝试. 4:2831个文件,38M,内置4.9分钟


解:

我执行此命令以更改文件夹的权限:

sudo chown jeanosorio/usr/local/share/man/man7

然后

brew link postgresql链接/usr/local/Cellar/postgresql/9.3.1 ...创建了421个符号链接

最后:

sudo ARCHFLAGS =" - arch x86_64"gem install pg

获取:pg-0.17.0.gem(100%)构建本机扩展.这可能需要一段时间......已成功安装pg-0.17.0

Yur*_*uri 239

如果您想避免使用MacPorts,可以下载Postgres应用程序并将其放入Application目录.

然后,指定新下载的位置pg_config:

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

如果您遇到缺少的标题问题,请尝试指定include应用程序的目录:

gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'
Run Code Online (Sandbox Code Playgroud)

  • 请注意,您仍然可以通过设置config env变量来使用bundler:`export CONFIGURE_ARGS ="with-pg-config =/Applications/Postgres.app/Contents/MacOS/bin/pg_config"` (10认同)
  • 如果你使用的是Postgres 9.3(截至今天),你可以这样做:```gem install pg - --with-pg-config =/Applications/Postgres93.app/Contents/MacOS/bin/pg_config`` ` (8认同)
  • 不得不使用`gem install pg - --with-pg-config =/Applications // Postgres.app/Contents/Versions/9.3/bin/pg_config (5认同)

Ayu*_*oel 70

使用brew获得 postgresql

brew install postgresql
Run Code Online (Sandbox Code Playgroud)

检查已安装的brew中是否有pg_config.我找到了我的

/usr/local/Cellar/postgresql/9.3.3/bin/pg_config

检查通过:

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

完成后,安装pg宝石

env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

  • 在尝试了许多不同的事情之后为我工作.我只需要确保使用正确的版本号(在我的情况下为9.3.5_1)! (2认同)

小智 35

我无法通过MacPorts安装postgres.相反,我安装了Postgress.app.并呼吁

gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

注意:在较新的版本中(至少在9.3中),路径实际上是: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

  • 这有效,但请注意,有时Postgres.app安装为Postgres <NN> .app,其中NN是版本号. (2认同)

2po*_*kes 10

如果您想直接使用postgresql安装程序,这是另一种选择.在更新到小牛队之后,你需要跳过几个篮球.这是我做的:

首先安装xcode命令行工具:

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

下载并安装最新版本的PostgreSQL(9.3.1),在我的情况下,我只使用了图形安装程序.这是下载页面的链接:

http://www.enterprisedb.com/products-services-training/pgdownload#osx
Run Code Online (Sandbox Code Playgroud)

只需选择它为您提供的所有默认值.我的情况是它将postgres安装到以下目录,如果你将它安装到另一个目录,只记得你选择的路径,因为你很快就会需要它.

/Library/PostgreSQL/9.3
Run Code Online (Sandbox Code Playgroud)

如果您现在尝试安装最新的pg gem(0.17.0),则需要在命令行上传递几个选项.这是我用过的:

ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

如果您将postgres安装到其他位置,则需要修复pg_config文件的路径.

如果在尝试安装pg gem时抱怨缺少"libpq.5.dylib"文件,则需要创建一个指向此文件实际位置的符号链接.Postgres在你的/ usr/local/lib /目录中寻找它,所以在那里创建一个符号链接并将其重定向到它的实际位置.在我的情况下,我不得不运行:

sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib
Run Code Online (Sandbox Code Playgroud)

一旦你完成了这一点,再次重新安装宝石,希望它能像你一样对你有用.


小智 8

如果你有自制软件,只需输入:

$ brew install postgresql


din*_*igo 8

对我来说,在优胜美地,我不需要指定pg_config路径.以下完成了它.

brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg
Run Code Online (Sandbox Code Playgroud)

似乎架构标志是关键.


Gi0*_*Gi0 5

在我的情况下(我在小牛队需要PG 0.16.0),我通过MacPorts安装了postgresql

sudo port install postgresql90
Run Code Online (Sandbox Code Playgroud)

然后

gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

对于最新版本,您需要扣除-v'0.16.0'

gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

如果你安装了Homebrew,在阅读它们的共存之前不要安装MacPorts


Bru*_*olo 5

将缺少的东西--with-pg-config放在Bundler的配置文件中:/Users/<your_user>/.bundle/config让您的生活更轻松.

---
BUNDLE_BUILD__PG: --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
BUNDLE_BUILD__EXAMPLE_GEM: --other-configs
BUNDLE_BUILD__OTHER_EXAMPLE_GEM: --other-configs
Run Code Online (Sandbox Code Playgroud)

然后又跑bundle install了.


mec*_*373 5

这对我行得通!(Postgres 93,mac ox 10.9.1)1.下载@ http://postgresapp.com/而不是

gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config
Run Code Online (Sandbox Code Playgroud)