12

在运行 bundle install 时,我在 'pg' gem 中收到以下错误,我将 gem 更改为 sqlite,然后也收到相同的错误。这是我的错误信息。

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb 
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from extconf.rb:2:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/pg-0.16.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/pg-0.16.0/ext/gem_make.out

An error occurred while installing pg (0.16.0), and Bundler cannot continue.
Make sure that `gem install pg -v '0.16.0'` succeeds before bundling.

我试过apt-get install libpg-dev gem install pg -v '0.16.0'没有帮助我

4

9 回答 9

14

你应该在安装 pg gem 之前安装 postgresql。

sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql libpq-dev

如果您的 sqlite 无法正常工作,那么您可能错过了一些软件包。

sudo apt-get install libreadline-dev libssl-dev zlib1g-dev build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev
于 2013-08-05T17:12:53.940 回答
9

在 Ubuntu 14.04(以及可能所有其他基于 Debian 7 的发行版)上,此问题是由缺少 Ruby 开发包引起的。因此,修复只是安装它:

sudo apt-get install ruby1.9.1-dev
于 2015-01-24T16:44:03.277 回答
4

我有同样的问题,我通过ubuntu以普通用户而不是root user. 我希望这可以帮助你。

于 2013-08-22T13:35:49.223 回答
2

我按照以下步骤解决了它

  1. 完全使用卸载 rubysudo apt-get purge ruby*
  2. 然后在移除卷曲sudo apt-get purge curl

然后我按照这个链接安装 Ruby RVM 和 rails 4.0.0

安装 Rails 4.0.0

于 2013-08-06T02:58:23.117 回答
1

安装

http://postgresapp.com/

然后

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

然后

bundle install
于 2013-11-16T17:36:17.623 回答
1

有时您需要更新 Ruby 库,请运行以下代码:

sudo gem update --system
于 2013-11-26T19:41:09.437 回答
1

我遇到了与 Ruby 构建略有不同的问题。现有应用程序Gemfile.lock是使用创建的,ruby-1.9.3-p194而我的本地 ruby​​ 是ruby-1.9.3-p484. 切换到正确的 ruby​​ 可以成功捆绑。

于 2014-02-21T02:27:58.140 回答
0

我在 CentOS 6.5 上遇到了同样的问题。

  1. 创建了一个新用户
  2. 将此用户添加到 sudoers 文件 /etc/sudoers
  3. 使用安装 ruby​​-develyum -y install ruby-devel
于 2015-02-03T17:40:39.273 回答
0

在 Debian 上,pg由于未安装 postgres,安装无法构建本机扩展。

我安装了 postgres 依赖项:

$ apt-get install postgresql postgresql-client libpq-dev

然后pggem 很好地构建了它的依赖项:

$ gem install pg -v '0.18.3'
Building native extensions.  This could take a while...
Successfully installed pg-0.18.3
1 gem installed
于 2016-04-28T01:57:33.537 回答