不可能在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,并已安装ruby和postgres的brew
。 以下是确保的步骤:
- 确保你的
ruby
版本没有安装--universal
标志。- 这是最困难的事情,我曾经
--universal
这是问题的最终根源。
- 这是最困难的事情,我曾经
- 确保你已经用
initdb
和createdb
命令正确地初始化了postgresql
(查看其他地方的步骤来做到这一点)。 - 确保安装了
Xcode
(可选)和command line tools
; 在terminal上:-
xcode-select --install
-
sudo xcodebuild -license
(如果安装了Xcode)或打开应用程序并接受许可协议。 - 重新启动计算机
-
-
which ruby
,which gem
和which 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