📅  最后修改于: 2023-12-03 15:30:53.337000             🧑  作者: Mango
对于在 Mac OS 上开发的 Ruby on Rails 应用程序来说,PostgreSQL 可能是一个非常重要的数据库,而 pg gem 是 Ruby 中最常用的 PostgreSQL 数据库驱动程序之一。在安装和使用 pg gem 时,经常会遇到一些错误和问题。本文将介绍如何在 Mac OS 上安装和使用 pg gem,并解决由此引起的常见错误。
在使用 pg gem 之前,需要先在 Mac 上安装 PostgreSQL 数据库。可以通过 Homebrew 来安装,具体命令如下:
brew install postgresql
安装完成后,可以使用以下命令启动 PostgreSQL 服务器:
pg_ctl -D /usr/local/var/postgres start
一般情况下,可以使用以下命令来安装 pg gem:
gem install pg
在大多数情况下,它应该可以成功安装,但是如果出现以下错误,则需要执行额外的步骤:
Building native extensions. This could take a while...
ERROR: Error installing pg:
ERROR: Failed to build gem native extension.
current directory: /Users/<username>/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/pg-1.1.4/ext/pgsql
/Users/<username>/.rbenv/versions/2.6.0/bin/ruby -I /Users/<username>/.rbenv/versions/2.6.0/lib/ruby/2.6.0 -r
./siteconf20200828-69295-rwh69b.rb extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building 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.
…
mkmf.log can be found here: /Users/<username>/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-19/2.6.0-static/pg-1.1.4/mkmf.log
出现这个错误的原因是找不到 PostgreSQL 的安装路径,需要手动指定 pg_config 的路径。使用以下命令查找 pg_config 的路径:
find /usr/local/Cellar/postgresql -name pg_config
在我的系统上,命令返回以下路径:
/usr/local/Cellar/postgresql/12.4/bin/pg_config
然后,重新执行安装 pg gem 的命令,但是这次需要指定 pg_config 的路径:
gem install pg --with-pg-config=/usr/local/Cellar/postgresql/12.4/bin/pg_config
在 Mac 上使用 Rails 和 PostgreSQL 的时候,安装和配置 pg gem 是必须完成的任务。本文介绍了如何安装和使用 pg gem,并解决了一些常见的错误。希望对你有所帮助。