Impossible to Install PG gem on my mac with Mavericks
我正在尝试安装pg gem以便再次使用我的rails项目。但我得到这个错误:
Building native extensions. This could take a while... ERROR: Error
installing pg: ERROR: Failed to build gem native extension.
1 /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking FOR pg_config... no No pg_config... trying anyway. IFbuilding fails, please try again with
--with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header
* extconf.rb failed * Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check
the mkmf.log file for more details. You may need configuration
options.Provided configuration options: --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 files will remain installed in
/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0
for inspection. Results logged to
/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,我会得到以下警告:
Warning: postgresql-9.2.4 already installed, it's just not linked
如果我尝试链接
brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4...
Warning: Could not link postgresql. Unlinking...Error: Could not symlink file:
/usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7
/usr/local/share/man/man7 is not writable. You should change its
permissions.
请帮忙
注意:我已经为Mavericks安装了命令行工具。
如果使用自制卸载并再次尝试安装,则会出现以下错误:
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2
################################################################## 100.0%
==> Patching patching file src/pl/plpython/Makefile patching file 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
==> CaveatsBuild Notes
If builds of PostgreSQL 9 are failing and you have version 8.x
installed, you may need to remove the previous version first. See:
https://github.com/mxcl/homebrew/issues/issue/2510Create/Upgrade a Database
If this is your first install, create a database with: initdb
/usr/local/var/postgres -E utf8To migrate existing data from a previous major version (pre-9.2) of
PostgreSQL, see:
http://www.postgresql.org/docs/9.2/static/upgrading.htmlLoading Extensions
By default, Homebrew builds all available Contrib extensions. To see a
list of all available extensions, from the psql command line, run:
SELECT * FROM pg_available_extensions;To load any of the extension names, navigate to the desired database
and run: CREATE EXTENSION [extension name];For instance, to load the tablefunc extension in the current database,
run: CREATE EXTENSION tablefunc;For more information on the CREATE EXTENSION command, see:
http://www.postgresql.org/docs/9.2/static/sql-createextension.html For
more information on extensions, see:
http://www.postgresql.org/docs/9.2/static/contrib.htmlOther
Some machines may require provisioning of shared memory:
http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC
When installing the postgres gem, including ARCHFLAGS is recommended:
ARCHFLAGS="-arch x86_64" gem install pgTo install gems without sudo, see the Homebrew wiki.
To have launchd start postgresql at login:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents Then to load postgresql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist Or, if you don't
want/need launchctl, you can just run:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start Warning: Could not link
postgresql. Unlinking... Error: Thebrew link step did not complete
successfully The formula built, but is not symlinked into /usr/local
You can try again using `brew link postgresql'
==> Summary ?? /usr/local/Cellar/postgresql/9.2.4: 2831 files, 38M, built in 4.9 minutes
解决方案:
我执行此命令以更改文件夹的权限:
sudo chown jeanosorio /usr/local/share/man/man7
然后
brew link postgresql Linking /usr/local/Cellar/postgresql/9.3.1... 421
symlinks created
最后:
sudo ARCHFLAGS="-arch x86_64" gem install pg
Fetching: pg-0.17.0.gem (100%) Building native extensions. This could
take a while... Successfully installed pg-0.17.0
如果您想避免使用MacPorts,可以下载Postgres应用程序并将其放到应用程序目录中。
然后,指定新下载
1 | gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config |
如果遇到缺少头的问题,请尝试指定应用程序的
1 | gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/' |
使用BREW获取
1 | brew install postgresql |
检查安装的BREW中是否有pg_配置。我找到了我的
/usr/local/Cellar/postgresql/9.3.3/bin/pg_config
检查通过:
1 2 | $ ls /usr/LOCAL/Cellar/postgresql/9.3.3/bin/pg_config > /usr/LOCAL/Cellar/postgresql/9.3.3/bin/pg_config |
完成后,用
1 | env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.3/bin/pg_config |
我无法通过MacPorts安装Postgres。相反,我安装了postgres.app。并称之为
1 | gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config |
注:在较新版本中(至少在9.3中),路径实际上是:
这是另一种选择,以防您想直接使用PostgreSQL安装程序。在升级到小牛队之后,你必须先跳过几个圈。我是这样做的:
首先安装xcode命令行工具:
1 | xcode-SELECT --install |
下载并安装最新版本的PostgreSQL(9.3.1),在我的例子中,我只是使用了图形安装程序。以下是下载页面的链接:
1 | http://www.enterprisedb.com/products-services-training/pgdownload#osx |
只需选择它提供给您的所有默认值。在我的例子中,它将postgres安装到以下目录,如果您将其安装到其他目录,只需记住您选择的路径,因为您很快就会需要它。
1 | /Library/PostgreSQL/9.3 |
如果现在尝试安装最新的pg gem(0.17.0),则需要在命令行上传递几个选项。这是我用过的:
1 | ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config |
如果您将Postgres安装到其他位置,那么您需要修复pg_配置文件的路径。
如果它抱怨在安装pg gem时丢失了"libpq.5.dylib"文件,则需要创建指向此文件实际位置的符号链接。Postgres正在您的/usr/local/lib/目录中查找它,因此在其中创建一个符号链接,并将其重定向到实际位置。在我的案例中,我必须运行:
1 | sudo ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib /usr/LOCAL/lib/libpq.5.dylib |
完成后,再次尝试安装gem,希望它能像我一样为您工作。
如果您有自制啤酒,只需键入:
$ brew install postgresql
对于我来说,在约塞米蒂,我不需要指定
1 2 | brew install postgresql sudo env ARCHFLAGS="-arch x86_64" gem install pg |
似乎架构标志是关键。
把丢失的
1 2 3 4 | --- 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 |
然后再次运行
那对我有用!(Postgres 93,Mac OX 10.9.1)1.下载@http://postgresapp.com/和
1 | gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config |
在我的例子中(我需要Mavericks上的pg 0.16.0),我通过MacPorts安装了PostgreSQL
1 | sudo port install postgresql90 |
然后
1 | gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config |
对于最新版本,您需要扣除-v"0.16.0"
1 | gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config |
如果安装了自制,请在阅读有关MacPorts共存的内容之前不要安装MacPorts。
在我的例子中,如果不指定arch标志、OS X 10.10.3和PostersApp 9.4,它就不起作用。
1 | sudo env ARCHFLAGS="-arch x86_64" gem install pg -- \--with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config |
我被困在捆绑安装上3天了。尝试了所有方法,比如添加env archflags="-arch x86_64"gem install pg---with pg config=/usr/local/cell/postgresql/9.3.5_1/bin/pg_config
我可以看到pg gem在这个命令之后被安装,但它仍然不是从bundle安装中安装的,这是一个痛苦的过程,因为我不知道在gemfile中写什么,gem'pg'除外。
最终对我起作用的是发现我的pg_config在/library/postgresql/9.3/bin/pg_config中,默认情况下,gemfile bundle安装在/usr/local/bin/pg_config中。
我刚执行了以下命令,魔法就发生了。bundle config build.pg——使用pg config=/library/postgresql/9.3/bin/pg_config
在我的例子中,我卸载了通过自制安装的版本,并切换到postgres.app(在编写时为v9.3.4.2)。
它似乎只在预先准备环境体系结构标志并指定到
下面是对我有用的最后一个完整的命令:
1 2 | 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
这就是它对我的作用:
1 | gem install pg -- --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config |
《我的路easiest RESOLVE这是两个使用IP postgres.app和env vars,我看到的只是
利用自制的桶
1 2 3 4 5 6 7 | 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 |
在运行关于pg gem的bundle安装时(使用mac os x mavericks),我也遇到了同样的错误。经过数小时的研究,我找到了解决办法。我用自制啤酒安装了Postgres
1 | brew install postgres |
安装之后,我使用Postgres创建了一个新的Rails应用程序。我跑
1 | bundle install |
无效(错误与问题相同)。我用过
1 | which psql |
为了找出Postgres的安装位置,它返回
1 | /usr/LOCAL/bin/psql |
在再次运行bundle install之前,我必须通过运行以下命令将全局路径更改为build.pg
1 | bundle config build.pg --with-pg-config=/usr/local/bin/pg_config |
然后我再次运行bundle安装程序,瞧!我用的是BREW安装的Postgres。
在Xcode 5.1.1的10.9.3中,我的工作是:
1 2 3 | brew UPDATE brew install postgresql gem install pg -v '0.17.1' |
我需要0.17.1页
在带有最新Postgres应用程序的OS X Mavericks上,使用sudo特权执行以下操作
1 | env ARCHFLAGS="-arch x86_64" gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config |
任何outthere迷失的灵魂,还是有这个问题没有解决与鸭有一个鸭
- 确保你的版本
ruby 不是安装与--universal 旗。- 这两件事是最恨的身影了,
--universal 是最终的根的问题。
- 这两件事是最恨的身影了,
- 确保你有initialized
postgresql 恰当与initdb 和createdb commands(看elsewhere为步这样做)。 - 确保
Xcode (可选)和command line tools 冰安装在终端;-
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 respectfully。 -
在终端运行:
-
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 误差
-
我也有同样的问题,这就是我找到的解决方案。
如果您运行
在
然后:
希望它有帮助!
1 | sudo su |
然后
1 | ARCHFLAGS="-arch x86_64" gem install pg -v '0.18' |
工作时间:10.10.2
如果在这里尝试了所有内容之后仍然无法安装,请尝试打开Xcode并接受许可协议。
对于我来说,错误消息如下:
--with-pg-config=/path/to/pg_config
如错误消息所示,它正在尝试执行命令/脚本"pg_config"。所以只要把它添加到路径中,从您的Postgres安装所在的地方。在我的案例中,我做到了:
然后
就是这样。
第一部全_ config找到PG位置
1 | sudo find / -name"pg_config" -print |
答案/图书馆/冰淇淋/ 9.1 PostgreSQL /斌/在我的_ pg config配置MAC(小牛)
那么试试下面的installing之类的东西
隐藏安装PG -和- config = PG /图书馆/工作/ 9.3 /斌/ PG _ CONFIG
如果这个工作不那么试图检查PostgreSQL的路你安装了什么
布鲁门/设置/ Mac
那么你必须尝试相关期权两个一样的。
谢谢你。
RAM
同样,在安装Mavericks的"bundle update"之后,在pg gem上抛出了一个错误,该错误仅用于生产,而不是本地。
我使用BREW管理我的软件包,PostgreSQL已经安装,但我仍然收到"no pg_config"错误。
修复方法是"brew uninstall postgresql",然后"brew install postgresql"。之后,我立即成功地运行了"bundle update"
邮政9.4:
1 | gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/Versions/9.4/bin/pg_config |
Postgres也为我工作。(Postgres 93,Mac OX 10.9.1)1.下载@http://postgresapp.com/,然后
1 | gem install pg -- --with-pg-config=/Applications/Postgres93.app/Contents/MacOS/bin/pg_config |
确保在Postgres文件夹名中正确地获取版本号是非常重要的。
另外,我在另一个应用程序中尝试了这个修复方法,我不断地得到一个错误,需要一个特定版本的pg(在我的例子中是0.16.0),所以我必须在命令中添加-v"0.16.0"。