web-dev-qa-db-ja.com

railsおよびlibpq-devの厄介な依存関係

この質問がここに属するかどうかはわかりませんが、試してみましょう。こんにちは。私は自分のマシンで、Windows Vistaでubuntu 11.10デュアルブートを実行しています。 Ubuntuでは、RVM、Rails gem、およびPostgreSQL(postgresサーバー、クライアント、およびlibpq5などの他のパッケージをインストールしました。SoftwareCenterからインストールしたためです)。

私はアプリをherokuにデプロイしようとしていますが、gemをインストールする必要があるようですpg。私はそれをインストールしようとしましたが、代わりにこのエラーが発生しました:

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

/home/pcr/.rvm/rubies/Ruby-1.9.3-p0/bin/Ruby extconf.rb pg_configの確認...はい

/ usr/bin/pg_configの設定値を使用する

サーバー側拡張機能を構築するにはpostgresql-server-dev-X.Yを、クライアント側アプリケーションを構築するにはlibpq-devをインストールする必要があります。サーバー側拡張機能を構築するにはpostgresql-server-dev-X.Yを、クライアント側アプリケーションを構築するにはlibpq-devをインストールする必要があります。

libpq-fe.hを確認しています... * extconf.rb failed *

しばらくグーグルとstackoverflowを検索した後、多くの人がlibpq-devをインストールする必要があると言いました。私は、ソフトウェアセンター経由で試しましたが、依存関係を満たさないようにしました。 apt-getを使って試しましたが、libkrb5-devとkrb5-multidevが必要だと言われました。 Sudo apt-get install libpq-dev libkrb5-dev krb5-multidevを試してみましたが、次のようになりました:

以下のパッケージには満たされていない依存関係があります:krb5-multidev:

依存:libkrb5-3(= 1.9.1 + dfsg-1ubuntu1)が、1.9.1 + dfsg-1ubuntu2.1がインストールされる

依存:libk5crypto3(= 1.9.1 + dfsg-1ubuntu1)が、1.9.1 + dfsg-1ubuntu2.1がインストールされる

依存:libgssapi-krb5-2(= 1.9.1 + dfsg-1ubuntu1)しかし、1.9.1 + dfsg-1ubuntu2.1がインストールされますE:問題を修正できません。壊れたパッケージを保持しています。

しかし、システムにはすでにlibkrb5-3、libk5crypto3、およびlibgssapi-krb5-2(すべてバージョン1.9.1 + dfsg-1ubuntu2.1)があります!おそらく必要なバージョンは1.9.1 + dfsg-1ubuntu1であると思います。したがって、最初に1.9.1 + dfsg-1ubuntu2.1パッケージを削除する必要があります。削除しても安全だと思いますか?それらの1つを削除しようとしましたが、ソフトウェアセンターはpostgres、openssl-client、smbclient、cups、および他の多くのパッケージも削除することを警告しています。

これを解決するにはどうすればよいですか?また、dbgresとしてpostgresを使用してRailsアプリを作成するには、pg gemをローカルマシンにインストールする必要が本当にありますか?代わりにpg gemをherokuに含める責任を「引き渡す」方法はありますか?

12
PatrixCR

本当の解決策は、正確に Amit Patelが指摘libpq-devをインストールすることです


開発マシンでpgをセットアップできなかった場合の回避策を次に示します。ローカルマシンでsqliteを使用し、Herokuでpgiteを使用できます。 Gemfileに必要なものは次のとおりです。

group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
end

そして、このコマンドを使用してバンドルをインストールし、実動gemを無視します。

bundle install --without production

実稼働マシンと開発マシンで同じ環境を使用しないことはお勧めできません。

8

今日も同じ問題が発生しました。メッセージに従いましたサーバー側の拡張機能を構築するにはpostgresql-server-dev-XYを、クライアント側のアプリケーションを構築するにはlibpq-devをインストールする必要があります。インストールしたlibpq-devとバンドルRails appをもう一度実行すると、エラーが消えました。

$ Sudo apt-get install libpq-dev
$ bundle install
32
Amit Patel