博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
尝试安装pg gem时找不到'libpq-fe.h标头
阅读量:3578 次
发布时间:2019-05-20

本文共 7628 字,大约阅读时间需要 25 分钟。

我正在使用Ruby on Rails 3.1预版本。 我喜欢使用PostgreSQL,但问题是安装 gem。 它给了我以下错误:

$ gem install pgBuilding 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.rbchecking for pg_config... noNo pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_configchecking for libpq-fe.h... noCan't find the 'libpq-fe.h header*** extconf.rb failed ***Could not create Makefile due to some reason, probably lack ofnecessary libraries and/or headers.  Check the mkmf.log file for moredetails.  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楼

对于 6.4,

yum install postgresql-develgem 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.hpostgres-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 XOS X )上,使用安装正确的标头:

brew install postgresql

然后运行

gem install pg

应该管用。

另外,您也可以不安装整个postgresql ,而是通过brew install libpq并导出正确的PATHPKG_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

资源:


#8楼

在 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

并尝试再次执行命令。

注意:无论何时更改配置-更改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.01 gem installedInstalling ri documentation for pg-0.11.0...Installing RDoc documentation for pg-0.11.0...

请参阅堆栈溢出问题


#12楼

我最近升级到 (Yosemite),并且在构建pg gem时遇到困难。

报告的错误是典型的:

Using config values from /usr/local/bin/pg_configchecking 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 ( )在您的计算机上找到libpq-fe.h文件。 如果存在,它将位于PostgreSQL安装的include目录中。

$ locate libpq-fe.h/Library/PostgreSQL/9.1/include/libpq-fe.h

包含pg_configbin目录将与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

资料来源:


#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.1yum install libpqxx-develgem 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 ,我发现它已经安装了,但是没有链接。

  1. 找出PostgreSQL的安装位置,然后删除它,

  2. 然后再次brew install postgresql

  3. brew link postgresql

  4. 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 libpqgem install pg -- --with-pg-config="/usr/local/Cellar/libpq/9.6.6/bin/pg_config"

#26楼

我在Postgresql 9.6中遇到这个问题。 我能够通过执行以下操作来修复它:

brew upgrade postgresql@9.6brew link postgresql@9.6 --forcegem install pg

#27楼

看起来在Ubuntu中,标头是 (至少在以下Ubuntu版本中: (Natty Narwhal), (Lucid Lynx), (Oneiric Ocelot), (Precise Pangolin), ( Trusty Tahr)和 (Bionic Beaver)):

.../usr/include/postgresql/libpq-fe.h...

因此,请尝试为您的操作系统安装libpq-dev或等效版本:

  • 对于Ubuntu / Debian系统: sudo apt-get install libpq-dev
  • 在 (RHEL)系统上: yum install postgresql-devel
  • 对于Mac : brew install postgresql
  • 对于Mac PostgreSQL: gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • 对于 : zypper in postgresql-devel
  • 对于 : pacman -S postgresql-libs

#28楼

在我的情况下,它是软件包postgresql-server-dev-8.4 (我在 (Natty Narwhal)上,64位)。


#29楼

我可以用另一种方式解决这个问题。 我没有在系统上找到该库。 因此,我使用PostgreSQL主网站上的应用程序安装了它。 就我而言(OS X),安装结束后,我在/Library/PostgreSQL/9.1/include/下找到了该文件。 如果您已经安装了PostgreSQL,则可能还会在其他位置存储该文件,具体取决于您的系统。

多亏了这个有关链接,我可以使用以下命令将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# orapt-get install postgres-server-dev-{pg.version}# for postgresql 9.4 on Ubuntu 14.04

那我就能做到

gem install pg

没有问题。

转载地址:http://feogj.baihongyu.com/

你可能感兴趣的文章
常用工具类 Math:数学计算 Random:生成伪随机数 SecureRandom:生成安全的随机数 2020-2-13
查看>>
Java问题百度/Google记录 2020-2-16
查看>>
【PADS9.5】9,对比ECO核心板,Router移动元件后布线消失,Router找不到自动布线策略文件丢失或损坏
查看>>
【STM32+w5500汇总】23,HTTP_Client 连接到ONENET上传了一段数据之后会断开,数据上传格式的设置
查看>>
【STM32+W5500+HTTPClient】25,路由器DHCP租赁IP时间为2h,NetBios可以很好的解决IP变化的问题,DNS,2018年12月25日
查看>>
【STM32CubeMX+FreeRTOS 】29,prtinf卡死;4任务只运行了3个;W5500联网失败(堆栈不能太大或者太小)
查看>>
【STM32+FPGA+FSMC】31,FSMC熟练掌握;KEIL5生成bin文件;SDRAM的使用;IAP检验码 2019年04月10日
查看>>
【IC1】【转 非常好】运算放大器使用的六个经验
查看>>
【IC-ADC 3】ADC的选型
查看>>
HiKey960/970用户手册;HiKey960 Development Board User Manual
查看>>
【书籍推荐】FPGA,xilinx
查看>>
N9-SQL注入(union注入)
查看>>
N10-sql注入(information_schema注入)
查看>>
N1-Kali虚拟机中SQLmap
查看>>
N11-sql注入(http头注入)
查看>>
N2-sqlmap初使用
查看>>
N12-sql盲注原理以及boolean盲注案例实现
查看>>
N13-sqli盲注 基于时间型
查看>>
N1 技术心得 2019-6-26
查看>>
N1-环境配置
查看>>