尝试安装 pg gem 时找不到 'libpq-fe.h 标头

2024-01-10

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

$ 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_config
    Gem 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

我该如何解决这个问题?


看起来在 Ubuntu 中,标头是libpq-dev package http://packages.ubuntu.com/natty/i386/libpq-dev/filelist(至少在以下 Ubuntu 版本中:11.04 http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_11.04_.28Natty_Narwhal.29(纳蒂独角鲸),10.04 https://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_10.04_LTS_.28Lucid_Lynx.29(清醒山猫),11.10 http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_11.10_.28Oneiric_Ocelot.29(梦魇豹猫),12.04 http://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_12.04_LTS_.28Precise_Pangolin.29(精准穿山甲),14.04 https://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_14.04_LTS_.28Trusty_Tahr.29(值得信赖的塔尔)和18.04 https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_18.04_LTS_(Bionic_Beaver)(仿生海狸)):

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

所以尝试安装libpq-dev或您操作系统的同等版本:

  • 对于 Ubuntu/Debian 系统:sudo apt-get install libpq-dev
  • On 红帽Linux http://en.wikipedia.org/wiki/Red_Hat_Linux(RHEL) 系统:yum install postgresql-devel
  • For Mac Homebrew https://en.wikipedia.org/wiki/Homebrew_%28package_management_software%29: brew install postgresql
  • For Mac MacPorts http://en.wikipedia.org/wiki/MacPortsPostgreSQL:gem install pg -- --with-pg-config=/opt/local/lib/postgresql[version number]/bin/pg_config
  • For OpenSuse https://en.wikipedia.org/wiki/OpenSUSE: zypper in postgresql-devel
  • For ArchLinux https://en.wikipedia.org/wiki/Arch_Linux: pacman -S postgresql-libs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试安装 pg gem 时找不到 'libpq-fe.h 标头 的相关文章

随机推荐

  • 切换到异步网络 API,例如 URLSession

    这是什么意思 我尝试了这个 仍然 它给了我同样的信息 DispatchQueue main async if let imageData try Data contentsOf url self image UIImage data ima
  • 默认 cakephp 库翻译的 .po 文件

    如何将 cakephp 库文件的翻译添加到 default po 文件例如 月份名称 日期的名称 过去的时间 我尝试手动将字符串添加到default po但每次我从default pot更新它 使用poedit 琴弦不见了 请帮我解决它可以
  • Bigquery - 提取包含表情符号的 json 字段?

    在我的 BQ 数据库表中 我有一列名为payload其中包含原始 facebook webhooks JSON 有效负载作为字符串 其中一个包含带有表情符号的文本 例如Sample 在大查询中它看起来像 object page entry
  • 从各种来源选择商品,并按日期订购

    我想实现以下目标 但遇到困难 1 从两个查询 item title 或 item keywords 之一中选择一个项目 从某种意义上说 当用户搜索时 它将查看是否在 item title 或 item keywords 中找到该项目 2 按
  • 获取隐藏列时的最后一个列号

    我需要获取第二行的最后一个列号 而引用的列是隐藏的 如果隐藏最后一列 下面的代码将输出错误的结果 Sub Last column number even is hidden Dim ws As Worksheet lastCol n As
  • 从同一编译单元覆盖 C 中的函数调用

    我在尝试着重写 C 中的函数调用 https stackoverflow com questions 617554 override a function call in c 但是当该函数在同一编译单元中使用时 我遇到了问题 在下面的代码中
  • MBProgressHUD 和 UITableView

    我在填充 TableView 时显示 HUD 但它似乎显示在 TableView 后面 表视图分隔符破坏了 Hud 这是 TableViewController 中的代码 void viewDidLoad super viewDidLoad
  • 删除createMediaElementSource

    我已经用谷歌搜索了这个问题 但找不到任何东西 我现在的情况需要删除source createMediaElementSource这样我就可以再次创建它 我正在使用音频分析器 每次使用 ajax 加载指定曲目时都必须加载该分析器 一旦您转到另
  • 如何定义一个返回其自身类型的 Rust 函数类型?

    我正在学习 Rust 并且仍然非常努力地理解它 考虑以下 Go 定义 type FnType func paramType FnType 它只是一个返回相同类型的函数的函数 Rust 中可以实现类似的功能吗 而且 理想情况下 它可以通用地完
  • 抽象类中内部抽象方法的目的是什么?

    抽象类中内部抽象方法的目的是什么 为什么要在抽象类中创建一个内部抽象方法 如果我们想限制程序集外部的抽象类 为什么我们不直接创建抽象内部类 背后是否还有其他逻辑 Adding internal的成员public抽象类使得不可能继承它abst
  • 是否可以使用 pyscript 在浏览器上运行 pygame 制作的游戏?

    我使用 pygame 制作了一个小型太空入侵者游戏 我想知道是否可以使用 pyscript 在浏览器上玩它 这可能吗 我必须重写所有内容吗 不 PyScript 目前不支持 Pygame 我不确定找出哪些软件包的最佳方法是什么are支持 但
  • 无法授权 Azure LogAnalytics 工作区

    I am trying to connect to my workspace in the Azure Portal I am getting the error as 操作返回无效状态代码 未经授权 creds 对象已获取身份验证令牌 并
  • 隐藏用户输入

    我正在尝试获取一个既可以在本机 Windows shell 中也可以在 cygwin shell 通过 ssh 中运行的脚本 该脚本会提示并读取用户输入的密码 到目前为止 我已经尝试过以下方法 using Term ReadKey and
  • .wav 文件中的字节代表什么?

    当我将 wav 文件中的数据存储到字节数组中时 这些值意味着什么 我读到它们采用两字节表示形式 但是这些两字节值中到底包含什么 您可能听说过 音频信号是由某种波表示的 如果您曾经见过带有上下直线的波形图 这基本上就是这些文件中的内容 看看这
  • Laravel/Heroku,会话没有这样的文件或目录

    我正在尝试在 heroku 上运行我的应用程序 但对于某些请求 只有 POST GET 工作正常 我的 Ajax POST 请求出现以下错误 Error Request failed with status code 419 当我检查 He
  • SignalR - 如何在集线器中执行异步任务?

    我正在尝试使用 C 5 async await 功能创建 SignalR 应用程序 但每当运行代码时 它都会抛出 System InvalidOperationException 这是重现该问题的最简单的代码 public class Sa
  • Python ctypes 和可变性

    我注意到将 Python 对象传递给本机代码ctypes可以打破可变性预期 例如 如果我有一个 C 函数 如下所示 int print and mutate char str str 0 X return printf s n str 我这
  • AutoMapper - 使用相同的源和目标对象类型进行映射

    我使用 Automapper 获取两个相同类型的对象并映射已更改的任何新值 我尝试使用下面的代码 但它不断抛出错误 我什至不确定这是否可以通过 Automapper 来实现 例如 Mapper CreateMap
  • Web 开发人员应该了解 IE7 和 IE8 之间的主要区别是什么?

    我刚刚下载了 IE8 它取代了我的 IE7 但这没关系 因为 IE8 有一个 兼容性视图 旨在呈现像 IE7 一样的页面 不确定 JavaScript 我想知道互联网上是否列出了开发人员应该了解的版本之间的所有主要差异 我在谷歌上搜索了一下
  • 尝试安装 pg gem 时找不到 'libpq-fe.h 标头

    我正在使用 Ruby on Rails 3 1 预版本 我喜欢使用 PostgreSQL 但问题是安装pg宝石 它给了我以下错误 gem install pg Building native extensions This could ta