pg gem 安装失败,找不到 libpq-fe.h header
pg gem install fails, cannot find libpq-fe.h header
每当我 运行 bundle install
在我的 VPS (CentOS Linux release 7.0.1406 (Core)) 上安装 pg gem.
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.
我可以独立安装 pg:gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config
问题已解决。
所以我添加了一个 capistrano 任务来为部署创建一个 ./bundle/config,其中 build.pg 键设置为 VPS 上的 pg_config 路径。在 Capistrano config/deploy.rb
中调用 before bundler:install
.
desc "Create bundle config"
task :prepare_bundle_config do
on roles(:app) do
within release_path do
execute :bundle, 'config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config --local'
end
end
end
我安装了必要的软件包:
postgresql94-server.x86_64
postgresql94-devel.x86_64
postgresql94-libs.x86_64
libpqxx.x86_64
libpqxx-devel.x86_64
这是我安装的 capistrano* gems
bundle list | grep capistrano
* capistrano (3.3.5)
* capistrano-bundler (1.1.4)
* capistrano-rails (1.1.2)
* capistrano-rbenv (2.0.3)
* capistrano-stats (1.1.1)
我在这里缺少什么来成功安装带有捆绑器的 pg?如果您需要任何其他信息,请发表评论,我会更新此 post。
postgres 二进制文件不在路径中。将它们符号链接到您路径中的一个目录,您应该是好的:ln -s /usr/pgsql-9.4/bin/p* /usr/local/bin
.
您是构建 postgres 还是从 yum 安装它?
我发现如果我用源代码编译 pgsql,并且 PATH ENV 没有配置 pgsql/bin,就会发生这种情况。你可以试试这个。
只是发布 PostgreSQL 11 的解决方案。如果有人登陆这里。
sudo yum install epel-release
sudo yum install postgresql11-llvmjit
sudo yum install postgresql11-devel postgresql11-libs
然后运行
gem install pg -v '1.2.3' -- --with-pg-config=/usr/pgsql-11/bin/pg_config
就是这样
或者,如果您使用 Mac
brew link postgresql
或者在我的情况下
brew link postgresql@12
每当我 运行 bundle install
在我的 VPS (CentOS Linux release 7.0.1406 (Core)) 上安装 pg gem.
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.
我可以独立安装 pg:gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config
问题已解决。
所以我添加了一个 capistrano 任务来为部署创建一个 ./bundle/config,其中 build.pg 键设置为 VPS 上的 pg_config 路径。在 Capistrano config/deploy.rb
中调用 before bundler:install
.
desc "Create bundle config"
task :prepare_bundle_config do
on roles(:app) do
within release_path do
execute :bundle, 'config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config --local'
end
end
end
我安装了必要的软件包:
postgresql94-server.x86_64
postgresql94-devel.x86_64
postgresql94-libs.x86_64
libpqxx.x86_64
libpqxx-devel.x86_64
这是我安装的 capistrano* gems
bundle list | grep capistrano
* capistrano (3.3.5)
* capistrano-bundler (1.1.4)
* capistrano-rails (1.1.2)
* capistrano-rbenv (2.0.3)
* capistrano-stats (1.1.1)
我在这里缺少什么来成功安装带有捆绑器的 pg?如果您需要任何其他信息,请发表评论,我会更新此 post。
postgres 二进制文件不在路径中。将它们符号链接到您路径中的一个目录,您应该是好的:ln -s /usr/pgsql-9.4/bin/p* /usr/local/bin
.
您是构建 postgres 还是从 yum 安装它?
我发现如果我用源代码编译 pgsql,并且 PATH ENV 没有配置 pgsql/bin,就会发生这种情况。你可以试试这个。
只是发布 PostgreSQL 11 的解决方案。如果有人登陆这里。
sudo yum install epel-release
sudo yum install postgresql11-llvmjit
sudo yum install postgresql11-devel postgresql11-libs
然后运行
gem install pg -v '1.2.3' -- --with-pg-config=/usr/pgsql-11/bin/pg_config
就是这样
或者,如果您使用 Mac
brew link postgresql
或者在我的情况下
brew link postgresql@12