web-dev-qa-db-ja.com

Gem :: Installer :: ExtensionBuildError:エラー:gemネイティブ拡張ubuntuのビルドに失敗しました

バンドルインストールを実行しているときに、 '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-devgem install pg -v '0.16.0'何の助けにもなりません

12
overflow

同じ問題がありますが、root userではなく通常のユーザーとしてubuntuにインストールすることで解決しました。これがお役に立てば幸いです。

4
chiyango

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
13

Ubuntu 14.04(およびおそらく他のすべてのDebian 7ベースのディストリビューション)では、この問題はRuby開発パッケージがないために発生します。したがって、修正は単にインストールすることです。

Sudo apt-get install Ruby1.9.1-dev
9
Luís de Sousa

私はこれらの手順に従ってそれを解決しました

  1. アンインストールRuby完全にSudo apt-get purge Ruby*を使用して
  2. 次に、削除されたカールSudo apt-get purge curl

次に、このリンクをたどってRuby RVMとRails 4.0.0

インストールRails 4.0.

2
overflow

インストール

http://postgresapp.com/

その後

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

その後

bundle install
1
sparkle

Rubyライブラリを更新する必要がある場合は、次のコードを実行します。

Sudo gem update --system
1
Mohammed Sawaie

わずかに異なるRubyビルドで問題が発生しました。既存のアプリケーションのGemfile.lockRuby-1.9.3-p194を使用して作成され、ローカルRubyはRuby-1.9.3-p484。適切なRubyへの切り替えが成功したバンドルで許可されています。

1
tmr08c

CentOS 6.5でも同じ問題が発生しました。

  1. 新しいユーザーを作成しました
  2. このユーザーをsudoersファイル/ etc/sudoersに追加しました
  3. yum -y install Ruby-develを使用してRuby-develをインストールします
0
Ian Bryce

Debianでは、postgresがインストールされていなかったため、pgインストールがネイティブ拡張のビルドに失敗していました。

私はpostgresの依存関係を次のようにインストールしました:

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

次に、pg gemは依存関係をうまく構築しました:

$ gem install pg -v '0.18.3'
Building native extensions.  This could take a while...
Successfully installed pg-0.18.3
1 gem installed
0
cgenco