不可能在Mavericks上安装PG gem

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

构build本机扩展。 这可能需要一段时间…错误:错误安装pg:错误:无法构buildgem本机扩展。

/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If 

build立失败,请再次尝试–with-pg-config = / path / to / pg_config检查libpq-fe.h … no找不到'libpq-fe.h头文件* extconf.rb失败*由于某种原因无法创buildMakefile,可能缺less必要的库和/或头文件。 检查mkmf.log文件以获取更多详细信息。 您可能需要configuration选项。

提供的configuration选项:–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进行检查。 结果logging到/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 ==>注意事项

构build笔记

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

创build/升级数据库

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

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

加载扩展

默认情况下,Homebrew构build所有可用的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/docs/9.2/static/contrib.html

其他

某些机器可能需要调配共享内存:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC安装postgres gem时,build议使用ARCHFLAGS:ARCHFLAGS =“ – arch x86_64”gem install pg

要不使用sudo安装gems,请参阅Homebrew wiki。

要login时启动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 …错误: brew link步骤没有成功完成公式构build,但没有符号链接到/ usr / local您可以使用`brew link postgresql'重新尝试==>总结🍺/ usr / local / Cellar / postgresql /9.2.4:2831文件,38M,build在4.9分钟


解:

我执行这个命令为了改变文件夹的权限:

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

然后

brew链接postgresql链接/usr/local/Cellar/postgresql/9.3.1 … 421创build符号链接

最后:

sudo ARCHFLAGS =“ – arch x86_64”gem install pg

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

如果你想避免使用MacPorts,你可以下载Postgres的应用程序 ,并将其放置到应用程序目录。

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

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

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

 gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/' 

使用brew来获取postgresql

 brew install postgresql 

检查你已经安装了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 

完成后,安装pg gem

 env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config 

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

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

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

如果您想直接使用postgresql安装程序,可以使用另一种方法。 在更新到特立独行之后,你需要跳过几个箍。 以下是我所做的:

首先安装xcode命令行工具:

 xcode-select --install 

下载并安装最新版本的PostgreSQL(9.3.1),就我而言,我只是使用了graphics化的安装程序。 这里是下载页面的链接:

 http://www.enterprisedb.com/products-services-training/pgdownload#osx 

只要select它给你的所有的默认值。 这是我的情况下安装postgres到以下目录,如果你把它安装到不同的目录,只记得你select的path,因为你很快就会需要它。

 /Library/PostgreSQL/9.3 

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

 ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config 

如果你安装postgres到不同的位置,那么你需要修复pg_config文件的path。

如果在尝试安装pg gem时抱怨缺less“libpq.5.dylib”文件,则需要创build指向此文件实际位置的符号链接。 Postgres正在你的/ usr / local / lib /目录下查找它,所以在那里创build一个符号链接并将其redirect到它的实际位置。 在我的情况下,我不得不跑:

 sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib 

一旦你这样做了,再次重新安装gem,希望它会像你一样对我工作。

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

$ brew安装postgresql

这对我行得通! (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 

对我来说,在优胜美地,我不需要指定pg_configpath。 下面就完成了。 brew install postgresql sudo env ARCHFLAGS="-arch x86_64" gem install pg好像架构标志是关键。

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

 sudo port install postgresql90 

接着

 gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config 

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

 gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config 

如果你已经安装了自制软件,在阅读其共同点之前,请不要安装MacPorts

把丢失的--with-pg-config放在Bundler的configuration文件中:/ /Users/<your_user>/.bundle/config . /Users/<your_user>/.bundle/config 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 

然后再次运行bundle install

我被困在我的捆绑安装3天。 尝试一切,如添加env ARCHFLAGS =“ – arch x86_64” gem install pg – –with-pg-config = / usr / local / Cellar / postgresql / 9.3.5_1 / bin / pg_config

我可以看到pg gem在这个命令后被安装,但仍然不是从bundle install安装,这是一个痛苦,因为我知道在Gemfile中写什么,除了gem'pg'

终于为我工作的东西是发现我的pg_config在/Library/PostgreSQL/9.3/bin/pg_config和默认情况下Gemfile捆绑安装在/ usr / local / bin / pg_config

我只是跑了下面的命令,发生了魔法。 bundle config build.pg –with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config

这是对我的工作:

 gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config 

在我的情况下,我卸载通过自制软件安装的版本,并切换到Postgres.app (在撰写本文时为v9.3.4.2)。

只是在预先考虑环境体系结构标志并指定pg_config的path时才起作用。 你的milage可能会有所不同,所以这个答案可以帮助改变pg_config的位置。

这是最后的,完整的命令,为我工作:

 env ARCHFLAGS="-arch x86_64" gem install pg -- \ --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config 

sudo ARCHFLAGS =“ – arch x86_64”gem install pg – –with-pg-config = / usr / local / bin / pg_config

在我的情况下,如果你没有指定arch标志,OS X 10.10.3和postersApp 9.4,那么它不起作用

 sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config 

运行与pg gem相关的捆绑安装(使用Mac OS X Mavericks)时遇到同样的错误。 经过几个小时的研究,我find了解决办法。 我用自制软件安装了postgres

 brew install postgres 

安装完成后,我使用postgres创build了一个新的rails应用程序。 我跑了

 bundle install 

没有用(得到同样的错误作为问题)。 我用了

 which psql 

找出我的postgres安装在哪里,它返回

 /usr/local/bin/psql 

在再次运行软件包安装之前,我必须通过运行以下命令将全局path更改为build.pg

 bundle config build.pg --with-pg-config=/usr/local/bin/pg_config 

然后我再次运行bundle install,瞧! 我使用了brew安装的postgres。

在OS X小牛与最新的Postgres应用程序使用sudo权限执行以下操作

 env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config 

Xcode 5.1.1在10.9.3上对我有效的是:

 brew update brew install postgresql gem install pg -v '0.17.1' 

我需要pg 0.17.1

对于任何失去灵魂的人仍然有这个问题没有解决scheme,并已安装rubypostgresbrew 。 以下是确保的步骤:

  • 确保你的ruby版本没有安装--universal标志。
    • 这是最困难的事情,我曾经--universal这是问题的最终根源。
  • 确保你已经用initdbcreatedb命令正确地初始化了postgresql (查看其他地方的步骤来做到这一点)。
  • 确保安装了Xcode (可选)和command line tools ; 在terminal上:
    • xcode-select --install
    • sudo xcodebuild -license (如果安装了Xcode)或打开应用程序并接受许可协议。
    • 重新启动计算机
  • which rubywhich gemwhich postgres应该显示/usr/local/bin/ruby/usr/local/bin/gem/usr/local/bin/postgres
  • 在terminal上运行:

    • gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    • 要么
    • env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
  • 确保所有这些步骤都得到满足,我能够解决以下错误:

    • ruby.h头错误
    • developer tools installed first错误

我遇到了同样的问题,这是我find的解决scheme。

如果你运行brew doctor ,它会告诉你可能你已经安装了一些没有改变某些文件夹的权限的brew,所以你需要在这个文件夹上修改权限。

/usr/local/share/man ,你可以做的是:

sudo chown [yourusername] man7

接着:

brew link postgres

希望它有帮助!

同样,安装Mavericks的bundle update之后,在pg gem上抛出一个错误,这个错误只在生产环境中使用,而不是在本地使用。

我使用Brew来pipe理我的软件包,并且postgresql已经安装,但是我仍然得到'no pg_config'错误。

解决的办法是'brew卸载postgresql',然后'brew install postgresql'。 之后,我立即能够成功运行“软件包更新”

 sudo su 

然后

 ARCHFLAGS="-arch x86_64" gem install pg -v '0.18' 

在10.10.2上工作

如果在这里尝试一切后仍然不会安装,尝试打开Xcode并接受许可协议。

对我来说,错误信息如下所示:

Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...

checking for pg_config... no

No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config

正如错误信息所示,它试图执行命令/脚本“pg_config”。 所以只要将它添加到Postgres安装位置的path即可。 就我而言,我做了:

export PATH=/Applications/Postgres.app/Contents/Versions/9.5/bin:$PATH

然后

bundle

而已。

首先findpg_config的位置

 sudo find / -name "pg_config" -print 

答案是/Library/PostgreSQL/9.1/bin/pg_config在我的configuration(MAC Maverick)

然后尝试安装下面的东西

gem install pg – –with-pg-config = / Library / PostgreSQL / 9.3 / bin / pg_config

如果这不起作用,然后尝试检查你安装postgresql的方式

brew / mac端口/设置

那么你必须尝试相同的选项。

谢谢。

随机存取存储器

我解决这个问题的最简单方法是使用Postgres.app并设置我的环境variables,所以gem install pg只是起作用(而不是需要--with-pg-config标志)。

使用自制酒桶 ,

 brew cask install postgres echo 'export PG_HOME=/Applications/Postgres.app/Contents/Versions/latest' >> ~/.bash_profile echo 'export PATH="$PATH:$PG_HOME/bin"' >> ~/.bash_profile source ~/.bash_profile # now it just works gem install pg 

Postgres也为我工作。 (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 

确保您在Postgres文件夹名称中正确获取版本号非常重要。

此外,我在另一个应用程序尝试了这个修复,我不断收到一个错误,需要一个特定版本的PG(在我的情况下0.16.0),所以我不得不添加-v'0.16.0'我的命令。

Postgres 9.4:

 gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config