尝试安装pg gem时找不到#39;libpq-fe.h标头
我正在使用Ruby on Rails 3.1预版本。 我喜欢使用PostgreSQL,但问题是安装pg
gem。 它给了我以下错误:
$ gem install pg
Building native extensions. This could take a while...
ERROR: Error installing pg:ERROR: Failed to build gem native extension./home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby 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.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=/home/u/.rvm/rubies/ruby-1.9.2-p0/bin/ruby--with-pg--without-pg--with-pg-dir--without-pg-dir--with-pg-include--without-pg-include=${pg-dir}/include--with-pg-lib--without-pg-lib=${pg-dir}/lib--with-pg-config--without-pg-config--with-pg_config--without-pg_configGem files will remain installed in /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0 for inspection.
Results logged to /home/u/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.11.0/ext/gem_make.out
我该如何解决这个问题?
#1楼
我解决了安装“ postgresql-common”软件包的问题。 该软件包提供了pg_config
二进制文件,这很可能是您所缺少的。
#2楼
对于CentOS 6.4,
yum install postgresql-devel
gem install pg
运作良好!
#3楼
以下是任何基于Debian的发行版(包括Ubuntu)的更一般的答案。 首先,安装以root身份运行的apt-file
软件包:
apt-get install apt-file
这使您可以搜索包含文件的软件包。 然后,使用
apt-file update
(可以以普通用户身份运行)。 然后,使用以下命令查找缺少的标题:
apt-file search libpq-fe.h
在我的机器上,这给出了:
libpq-dev: /usr/include/postgresql/libpq-fe.h
postgres-xc-server-dev: /usr/include/postgres-xc/server/gtm/libpq-fe.h
你去!
#4楼
在FreeBSD(9.1)上,必需的软件包是/ usr / ports / database / postgresql-server *,在安装时还将安装所需的头文件,该头文件会使gem安装“ pg”失败。 这里的答案帮助我找到了解决方案,但是包名称的不同需要一些搜索。
希望这可以帮助某人在FreeBSD系统上搜索“ -dev”软件包时避免头有些划伤!
#5楼
在macOS (以前是Mac OS X和OS X )上,使用Homebrew安装正确的标头:
brew install postgresql
然后运行
gem install pg
应该管用。
另外,您也可以不安装整个postgresql
,而是通过brew install libpq
并导出正确的PATH
和PKG_CONFIG_PATH
如“注意事项”部分中所述。
#6楼
在Mac OS X上,运行如下:
gem install pg -- --with-pg-config=***/path/to/pg_config***
***/path/to/pg_config***
是pg_config的路径
#7楼
我遇到了类似的问题,这为我解决了这个问题:
gem install do_postgres -- --with-pgsql-server-dir=/Applications/Postgres.app/Contents/MacOS --with-pgsql-server-include=/Applications/Postgres.app/Contents/MacOS/include/server
资源:
https://gist.github.com/oisin/6562181
#8楼
在Debian 7.0(64位(Wheezy))上,只需运行:
sudo apt-get install libpq-dev
成功安装libpq-dev后,运行:
bundle install
#9楼
在CentOS 6.5(压缩)下,我创建了一个文件:
$ sudo touch /etc/profile.d/psql.sh
内容:
pathmunge /usr/pgsql-9.3/bin
请注意,您应该使用pg_config文件设置PostgreSQL路径。 您可以使用以下命令找到它:
$ sudo find / -iname pg_config
保存文件:
$ sudo chmod +x /etc/profile.d/ruby.sh
并尝试再次执行命令。
注意:无论何时更改Bash配置-更改profile.d配置-您都应重新加载Bash。
#10楼
我在Mac OS上遇到了同样的问题,但是我通过在终端中使用以下命令轻松地安装了PostgreSQL gem:
ARCHFLAGS="-arch x86_64" gem install pg
(我先用brew install postgresql
安装了PostgreSQL。)
#11楼
经过大约两天的研究,我找到了这个答案,这是唯一对我有用的答案(Mac OS):
$ sudo su$ env ARCHFLAGS="-arch x86_64" gem install pgBuilding native extensions. This could take a while...
Successfully installed pg-0.11.0
1 gem installed
Installing ri documentation for pg-0.11.0...
Installing RDoc documentation for pg-0.11.0...
请参阅堆栈溢出问题找不到PostgreSQL客户端库(libpq) 。
#12楼
我最近升级到Mac OS X v10.10 (Yosemite),并且在构建pg
gem时遇到困难。
报告的错误是典型的:
Using config values from /usr/local/bin/pg_config
checking for libpq-fe.h... *** extconf.rb failed ***
我的解决方案是将gem uninstall pg
,然后bundle update pg
,以将gem替换为最新版本。 我确实运行了brew update; brew upgrade
优胜美地安装后进行brew update; brew upgrade
,以获取我之前安装的软件包的最新版本。
#13楼
在CentOS上,我使用以下命令安装了libpq-dev package
yum install postgresql-devel
执行gem install pg
返回的错误与“ No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
”。
如下安装gem解决了我的问题
gem install pg -- --with-pg-config=/usr/pgsql-x.x/bin/pg_config
#14楼
Mac用户使用Postgres.app的正确答案是根据该软件包提供的libpq
进行构建。 例如,对于9.4版本(撰写本文时为最新版本),您需要做的是:
export CONFIGURE_ARGS="with-pg-include=/Applications/Postgres.app/Contents/Versions/9.4/include"
gem install pg
这将使您的pg
gem与您已安装的PostgreSQL版本完全同步。 在这种情况下,从Homebrew安装某些东西很浪费。
#15楼
libpq-fe.h
的位置取决于PostgreSQL的安装位置(取决于您的安装方式)。 使用locate
( http://en.wikipedia.org/wiki/Locate_%28Unix%29 )在您的计算机上找到libpq-fe.h
文件。 如果存在,它将位于PostgreSQL安装的include
目录中。
$ locate libpq-fe.h
/Library/PostgreSQL/9.1/include/libpq-fe.h
包含pg_config
的bin
目录将与include
目录位于同一目录中。 如错误所示,请使用--with-pg-config选项安装gem:
$ gem install pg --with-pg-config="/Library/PostgreSQL/9.1/bin/pg_config"
请注意,如果您从未使用过locate
或者自安装PostgreSQL以来从未更新过,则可能需要运行updatedb
。
#16楼
我在Amazon Linux上遇到了同样的问题。 我可以找到标头libpq-fe.h
,但不知何故。
它来自通过计算机上不同用户安装的软件包的不同版本。 已安装PostgreSQL 9.2和PostgreSQL 9.3。 因此,在包含库之前,请确保您的PostgreSQL版本。
对我来说,神奇的命令行是:
sudo yum install postgresql93 postgresql93-server postgresql93-libs postgresql93-contrib postgresql93-devel
资料来源: 安装Yum的PostgreSQL 9.3,PostGIS 2.1和pgRouting的几乎白痴的指南
#17楼
我在Mac上运行Postgres.app,我不得不
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.4/bin
第一。 然后
bundle install
为我工作。
#18楼
找不到libpq-fe.h标头
我在运行以下命令的CentOS 7.0.1406上取得了成功:
~ % psql --version # => psql (PostgreSQL) 9.4.1
yum install libpqxx-devel
gem install pg -- --with-pg-config=/usr/pgsql-9.4/bin/pg_config
另外 ,您也可以将bundler配置为始终使用以下选项安装pg
(有助于在部署环境中运行bundler),
bundle config build.pg --with-pg-config=/usr/pgsql-9.4/bin/pg_config
#19楼
仅作记录:
带有PostgresApp的OS X中的Ruby on Rails 4应用程序(在这种情况下,需要0.17.1版本-一种旧项目):
gem install pg -v '0.17.1' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
#20楼
在Mac上,我使用以下代码解决了该问题:
gem install pg -v '0.18.4' -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.4/bin/pg_config
#21楼
我终于解决了这个问题,但是没有使用前面描述的方法。
使用brew install postgresql
,我发现它已经安装了,但是没有链接。
找出PostgreSQL的安装位置,然后删除它,
然后再次
brew install postgresql
,brew link postgresql
gem install pg
#22楼
对于AltLinux
,必须安装软件包postgresqlx.x-devel
(在我的情况下为postgresql9.5-devel
):
apt-get install postgresql9.5-devel
#23楼
我刚刚在运行brew和postgres@9.4
OSX上使用了它。
我的解决方法是:
CONFIGURE_ARGS="with-pg-include=/usr/local/opt/postgresql@9.4/include/" bundle install
#24楼
在Ubuntu上,安装“ libpq-dev”可以解决此问题。
sudo apt-get install libpq-dev
#25楼
对于未安装PostgreSQL服务器的MacOS :
brew install libpq
gem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"
#26楼
我在Postgresql 9.6中遇到这个问题。 我能够通过执行以下操作来修复它:
brew upgrade postgresql@9.6
brew link postgresql@9.6 --force
gem install pg
#27楼
看起来在Ubuntu中,标头是libpq-dev
软件包的一部分 (至少在以下Ubuntu版本中: 11.04 (Natty Narwhal), 10.04 (Lucid Lynx), 11.10 (Oneiric Ocelot), 12.04 (Precise Pangolin), 14.04 ( Trusty Tahr)和18.04 (Bionic Beaver)):
...
/usr/include/postgresql/libpq-fe.h
...
因此,请尝试为您的操作系统安装libpq-dev
或等效版本:
- 对于Ubuntu / Debian系统:
sudo apt-get install libpq-dev
- 在Red Hat Linux (RHEL)系统上:
yum install postgresql-devel
- 对于Mac Homebrew :
brew install postgresql
- 对于Mac MacPorts PostgreSQL:
gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
- 对于OpenSuse :
zypper in postgresql-devel
- 对于ArchLinux :
pacman -S postgresql-libs
#28楼
在我的情况下,它是软件包postgresql-server-dev-8.4
(我在Ubuntu 11.04 (Natty Narwhal)上,64位)。
#29楼
我可以用另一种方式解决这个问题。 我没有在系统上找到该库。 因此,我使用PostgreSQL主网站上的应用程序安装了它。 就我而言(OS X),安装结束后,我在/Library/PostgreSQL/9.1/include/
下找到了该文件。 如果您已经安装了PostgreSQL,则可能还会在其他位置存储该文件,具体取决于您的系统。
多亏了这个有关如何为gem安装添加额外路径的链接,我可以使用以下命令将gem指向lib:
export CONFIGURE_ARGS="with-pg-include=/Library/PostgreSQL/9.1/include/"
gem install pg
之后,它就可以工作了,因为它现在知道在哪里可以找到丢失的库。 只需将路径替换为libpq-fe.h的正确位置
#30楼
我也尝试过执行gem install libpq-dev
,但收到此错误:
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
但是我发现使用sudo apt-get
(我试图避免与Ruby on Rails一起使用)进行安装是可行的,即
sudo apt-get install libpq-dev
# or
apt-get install postgres-server-dev-{pg.version}
# for postgresql 9.4 on Ubuntu 14.04
那我就能做到
gem install pg
没有问题。
尝试安装pg gem时找不到#39;libpq-fe.h标头相关推荐
- win7点了计算机看不见硬盘,在安装Win7系统时找不到硬盘怎么办
现在重新安装计算机系统是非常简单的事情,但是如果在安装Win7系统时出现问题,那就很麻烦了!最近,当用户重新安装w7计算机系统时,弹出提示"找不到硬盘". 如何解决这种情况?以下编 ...
- R语言——安装程序包时找不到对象怎么办?
R语言--安装程序包时找不到对象怎么办? 安装程序包lmtest,但是出现错误,找不到对象lmtest 给lmtest加上双引号,安装成功!注意是英文的双引号哦!
- hp dl360安装rhel6.4时找不到硬盘
问题描述:hp dl360 g9安装rhel6.4系统时找不到硬盘,raid已做好了 分析与解决:旧版本系统里面没有集成这个型号机器的raid卡驱动,最后换了rhel6.8系统,安装成功! 时间:20 ...
- python安装第三方库时找不到“cl.exe”的解决方法(Win10系统)
闲话不多说,直接上重点. 当我们使用Python安装第三方库时,可能会遇到显示一大堆字母,什么也看不懂,但是里面仿佛有一句在说"找不到'cl.exe'",作为一个Python党.C ...
- 安装envi5.3时找不到证书license
安装了一个寝室的envi除去本人和一个已经安装了的其他四个人都遇到了一个问题那就是找不到license或者是license不可用.可以先看最后一段 解决方案一:这是我解决的第一个舍友的问题,她和我一样 ...
- rails 安装 ‘mysql2’ gem时的报错和解决方案
前段时间畅言网更换数据库为Mysql,安装mysql数据库以及配置之类的就不在说了应该没什么问题.主要就说一下我遇到的一个gem安装问题. rails连接mysql用的gem 有好几个然后上网查了一下 ...
- 英特尔第11代处理器(Intel Tiger Lake) 疑难解答 - 安装Windows 10时找不到驱动器
英特尔第11代处理器(Intel Tiger Lake),采用新的Intel Volume Management Device技术,优化储存装置的数据处理效率与耗电量. 当您为华硕(https://w ...
- 英特尔第11代处理器(Intel Tiger Lake) 安装Windows 10时找不到驱动器
英特尔第11代处理器(Intel Tiger Lake),采用新的Intel Volume Management Device技术,优化储存装置的数据处理效率与耗电量. 当您安装Windows 10零 ...
- ruby gem 安装mysql2_Ruby gem mysql2安装错误
我在 Windows7中安装了 Ruby版本的ruby 1.9.2p0(2010-08-18)[i386-mingw32]. 和宝石血统1.3.7 当我试图安装mysql gem时,显示无法构建gem ...
最新文章
- Mongo读书笔记1 -- GridFS
- python快速检测视频跳过帧_使用Python实现跳帧截取视频帧
- 音乐雷达 shazam算法_具有10亿首Shazam音乐识别功能的数据可视化
- reids笔记4 集群
- 山西省计算机商务学校地址,山西计算机等级考试报名地点
- linux设备数内核选项,linux内核设备树修改指南 / linux kernel device tree modify guide
- arcmap提取dem高程_ArcGIS提取高程点
- 人工智能深度学习数据集
- 必先利其器之 IDEA 磨刀好杀猪
- 巧妙实现 Form 表单认证跨站点、跨服务器的单点登录(Single Sign On)
- Springboot实战项目完结篇之商城系统之收货地址管理
- 华为HCNA实验学习
- mac apache 重启
- svn初步安装使用(详细教程图文操作)
- windows 命令行查找字符串 和 文件(find findstr for)
- 【GIS开发】地理编码服务Geocoder(Python)
- 白嫖 IObit 系列软件例如 IObit Uninstaller
- 计算机技术与软件专业技术资格(水平)考试—— 软考中级 网络工程师笔记six
- 传智播客黑马Java学习笔记_day05
- 一个页面调用另一个页面的方法