不可能在我的 Mac 上安装 PG gem 和 Mavericks

我试图安装的 pg 宝石,以便再次与我的轨道项目工作。但我得到了这个错误:

构建本地扩展。这可能需要一段时间... ... 错误: 错误 安装 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

建筑失败,请再试一次 —— with-pg-config =/path/to/pg _ config 检查 libpq-fe.h... no 无法找到‘ libpq-fe.h 头 由于某些原因,可能缺少必要的库和/或头文件,无法创建 Makefile。将军 日志文件了解更多细节。您可能需要配置 选择。

提供的配置选项: —— 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 - 没有-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

我尝试了所有我发现的堆栈溢出,但我仍然得到这个错误。

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

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

如果我尝试链接

返回文章页面酿造链接 postgreql 链接/usr/local/Cellar/postgreql/9.2.4..。 警告: 无法连接后期。解除连接..。

错误: 无法符号链接文件: /usr/local/Cellar/postgreql/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/postgreql/9.2.4—— datadir =/usr/local/Cellar/postgreql/9.2.4/share/postgreql —— docdir =/usr/local/Cellar/p = = > make install-world = = > 警告

构建笔记

如果 PostgreSQL9的构建失败,并且您的版本是8.x 安装后,您可能需要先删除以前的版本。请参阅:
Https://github.com/mxcl/homebrew/issues/issue/2510

创建/升级数据库

如果这是您的第一次安装,那么使用: initdb 创建一个数据库 /usr/local/var/postgres-E utf8

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

加载扩展

默认情况下,Homebrew 构建所有可用的 Contrib 扩展 从 psql 命令行运行所有可用扩展名的列表:
SELECT * FROM pg _ able _ extons;

若要加载任何扩展名,请导航到所需的数据库 运行: 创建扩展名[扩展名] ;

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

有关 CREATE EXTENION 命令的更多信息,请参见:
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 时,建议使用 ARCHFLAGS: ARCHFLAGS = “-arch x86 _ 64”gem install pg

要安装不带 sudo 的 gem,请参见 Homebrewiki。

要让 launchd 在登录时启动 postgreql: Ln-sfv/usr/local/opt/postgreql/* . plist ~/Library/LaunchAgent 然后现在加载 postgreql: Launchctl load ~/Library/LaunchAgent/homebrew.mxcl.postgreql.plist 或者,如果不这样做的话 想/需要 launchctl,只需运行: Pg _ ctl-D/usr/local/var/postgres-l/usr/local/var/postgres/server.log start 警告: 无法链接 解除连接... 错误: brew link步骤没有完成 成功地构建了公式,但没有与/usr/local 进行符号链接 你可以再试一次,使用’酿造链接 postgreql’ = = > Summary/usr/local/Cellar/postgreql/9.2.4:2831 files,38M,内建时间为4.9分钟


解决方案:

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

Sudo chown Jeanosorio/usr/local/share/man/man7

然后

Brewlink postgreql Link/usr/local/Cellar/postgreql/9.3.1... 421 创建符号链接

最后:

Sudo ARCHFLAGS = “-arch x86 _ 64”gem install pg

获取: pg-0.17.0. gem (100%)构建本地扩展 花点时间... 成功安装 pg-0.17.0

85083 次浏览

In my case (i needed PG 0.16.0 on Mavericks), i installed postgresql via MacPorts

sudo port install postgresql90

and then

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

For the latest version you need to deduct -v '0.16.0'

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

If you have Homebrew installed do not install MacPorts before you read about their coexistense

I wasn't able to install postgres via MacPorts. Instead, I installed Postgress.app. and called

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

Note: in newer versions (in 9.3 at least) the path is actually: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config

If you want to avoid using MacPorts, you can download the Postgres App and place it into the Application directory.

Then, specify the location of newly downloaded pg_config:

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

If you run in to missing headers problem, try specifying the include directory of the app:

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

Here's another alternative in case you want to use the postgresql installer directly. There's a couple of hoops you gotta jump through to begin with after updating to mavericks. Here's what I did:

Install the xcode command line tools first:

xcode-select --install

Download and install the latest version of PostgreSQL (9.3.1), in my case I just used the graphical installer. Here's the link to the downloads page:

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

Just choose all of the defaults it gives you. It my case it installed postgres to the following directory, if you installed it to a different directory, just remember the path you chose, because you'll need it shortly.

/Library/PostgreSQL/9.3

If you now try and install the latest pg gem (0.17.0) you'll need to pass a couple of options on the command line. This is what I used:

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

If you installed postgres to a different location then you'll need to fix up the path to the pg_config file.

If it complains of a missing 'libpq.5.dylib' file while trying install the pg gem you'll need to create a symlink pointing to the actual location of this file. Postgres is looking for it in your /usr/local/lib/ directory so create a symlink in there and redirect it to its actual location. In my case I had to run:

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

Once you've done that, retry installing the gem again and hopefully it will work for you the same way it did for me.

Place the missing --with-pg-config in Bundler's config file: /Users/<your_user>/.bundle/config to make your life easier.

---
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

Then run bundle install again.

That works for me! (Postgres 93, mac ox 10.9.1)1. download @ http://postgresapp.com/ and than

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

If you have homebrew, just type:

$ brew install postgresql

This is what it worked for me:

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

I was with the same problem, this was the solution I've found.

If you run brew doctor, it will tell you that probably you have installed something without brew that have changed the permissions on some folders, and so, you need to change permissions back to you on that folder.

Inside /usr/local/share/man, what you can do is the following:

sudo chown [yourusername] man7

And then:

brew link postgres

Hope it helps!

Use brew to get postgresql

brew install postgresql

Check you have pg_config in the installed brew. I found mine in

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

Check via :

$ ls /usr/local/Cellar/postgresql/9.3.3/bin/pg_config
> /usr/local/Cellar/postgresql/9.3.3/bin/pg_config

Once done, install the pg gem with

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

I was getting the same error when running bundle install regarding the pg gem (using Mac OS X Mavericks). After hours of researching, I found the solution. I installed postgres using homebrew

brew install postgres

After installing that, I created a new rails app using postgres. I ran

bundle install

to no avail (got same error as the question). I used

which psql

to figure out where my postgres was installed, it returned

/usr/local/bin/psql

before running bundle install again, I had to change the global path to build.pg by running the following

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

then I ran bundle install again and voila! I used the postgres where brew installed it.

Similarly, after installing Mavericks 'bundle update' was throwing an error on the pg gem, which is only used on production and not locally.

I use Brew to manage my packages and postgresql was already installed, but still I was getting the 'no pg_config' error.

The fix was to just 'brew uninstall postgresql', then 'brew install postgresql'. After which I was immediately able to successfully run 'bundle update'

What worked for me on 10.9.3 with Xcode 5.1.1 was the following:

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

I needed pg 0.17.1

In my case, I uninstalled the version installed via homebrew and switched to Postgres.app (v9.3.4.2 at the time of writing).

It only seemed to work when prepending the environment architecture flags and specifying the path to pg_config. Your milage might vary, so this answer could help with variations on pg_config's location.

Here is the final, complete command that worked for me:

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

On OS X Mavericks with latest Postgres App do the following with sudo privileges

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

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

I was stuck on my bundle install for 3 days. Tried Everything like adding env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_config

I was able to see pg gem getting installed after this command but still it was not installing from bundle install, which was a pain because I dint know what to write in Gemfile except gem 'pg'

The thing which finally worked for me was to find that my pg_config was in /Library/PostgreSQL/9.3/bin/pg_config and by default the Gemfile bundle install looks in /usr/local/bin/pg_config

I just ran the following command and magic happened. bundle config build.pg --with-pg-config=/Library/PostgreSQL/9.3/bin/pg_config

For me, on Yosemite, I didn't need to specify pg_config path. The following got it done.

brew install postgresql
sudo env ARCHFLAGS="-arch x86_64" gem install pg

Seems like architecture flag is the key.

Postgres 9.4:

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

then

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

worked on 10.10.2

In my case it didn't work if you don't specify the arch flags, OS X 10.10.3 and 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

If after trying everything here it still won't install, try opening Xcode and accepting the license agreement.

For me, the error message looked like this:

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

As the error message shows, it's trying to execute the command/script "pg_config". So just add it to the path from wherever your Postgres installation is. In my case, I did:

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

then

bundle

That's it.

For any lost soul outthere still having this issue with no resolution and have a brew installed ruby and postgres. Here's the following steps to make sure of:

  • Make sure your version of ruby wasn't installed with the --universal flag.
    • This was the hardest thing to figure out, I had --universal which was the final root of the problem.
  • Make sure you have initialized postgresql properly with initdb and createdb commands (look elsewhere for steps to do this).
  • Make sure Xcode (Optional) and command line tools is installed; on the terminal:
    • xcode-select --install
    • sudo xcodebuild -license (if Xcode installed) or open the application and accept the license agreement.
    • Reboot Computer
  • which ruby, which gem and which postgres should show /usr/local/bin/ruby, /usr/local/bin/gem and /usr/local/bin/postgres respectfully.
  • On the terminal run:

    • gem install pg -- --with-pg-config=/usr/local/bin/pg_config
    • or
    • env ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/usr/local/bin/pg_config
  • Making sure all these steps are satisfied I was able to solve the following errors:

    • ruby.h header error
    • developer tools installed first error

First of all find pg_config location

sudo find / -name "pg_config" -print

The answer is /Library/PostgreSQL/9.1/bin/pg_config in my configuration (MAC Maverick)

Then try installing something like below

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

if this does not work then try to check in what way you installed postgresql

brew/mac port/setup

then you have to try relevant option to the same.

Thank you.

Ram

The easiest way for me to resolve this was to use Postgres.app and set up my env vars so gem install pg just works (instead of requiring the --with-pg-config flag).

Using Homebrew Cask,

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

I had installed postgres using homebrew on mac. Used below command to find the location

which postgres
/usr/local/opt/postgresql@12/bin/postgres

Installed gem using below command. In the above path just replace the postgres with pg_config since command requires path for pg_config.

gem install pg -- --with-pg-config=/usr/local/opt/postgresql@12/bin/pg_config