railsのプロジェクトを再開するために、pg gemをインストールしようとしています。しかし、次のようなエラーが出ます。 ネイティブエクステンションの構築中です。 しばらく時間がかかりそうです...ERROR: エラー
pgのインストール: ERROR:Failed to build gem native extension. と表示されました。 ERROR: Failed to build gem native extension. > /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no pg_config...とりあえずやってみます。もし 構築に失敗した場合は、次の方法で再構築してください。 --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can'libpq-fe.h headerを見つけられませんでした。 extconf.rb failed 何らかの理由でMakefileを作成できませんでした。おそらく必要なライブラリやヘッダがないのでしょう。 チェック 詳細はmkmf.logファイルを確認してください。 設定オプションが必要かもしれません。 オプションが必要かもしれません。
用意されている設定オプションです。 --opt-dirを伴う --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=/Users/Jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby とします。 --with-pg --without-pg --with-pg-config --without-pg-config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include=${pg-dir}/include --with-pg-lib --without-pg-lib=${pg-dir}/ となります。 となっています。 Gemファイルは、以下の場所にインストールされます。 /Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0 を検査します。結果は 結果は、/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/pg-0.17.0/ext/gem_make.out に記録されます。 stackoverflowで見つけたものをすべて試してみましたが、やはりこのエラーが出ます。 brewを使ってpostgresqlをインストールしようとすると、以下のような警告が出ます。 警告: postgresql-9.2.4 は既にインストールされていますが、リンクされていません。 リンクしようとすると brew link postgresql Linking /usr/local/Cellar/postgresql/9.2.4... Warning:Could not link postgresql.リンク解除中...
エラーが発生しました。Could not symlink file: /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 /usr/local/share/man/man7は書き込み可能なファイルではありません。パーミッションを変更する必要があります。 パーミッションを変更してください。 Help Please 注:mavericks用のコマンドラインツールは既にインストール済みです。
homebrewを使ってアンインストールして、再度インストールしようとすると、このようなエラーが出ます。 ==> ダウンロード中 http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.bz2 ######################################################################## 100.0% ==> パッチ適用 ファイル src/pl/plpython/Makefile パッチ適用 ファイル contrib/uuid-ossp/uuid-ossp.c ファイル contrib/uuid-ossp/uuid-ossp.c をパッチします。 make install-world ==> ==> 注意事項
ビルド時の注意事項
PostgreSQL 9のビルドが失敗し、バージョン8.xがインストールされている場合は がインストールされている場合、まず前のバージョンを削除する必要があるかもしれません。参照してください。
https://github.com/mxcl/homebrew/issues/issue/2510 を参照してください。データベースの作成/アップグレード
初めてインストールする場合は、次のようにしてデータベースを作成します: initdb /usr/local/var/postgres -E utf8 としてください。 以前のメジャーバージョン(9.2以前)のPostgreSQLから既存のデータを移行するには、以下の方法があります。 PostgreSQLから既存のデータを移行するには、以下を参照してください。
http://www.postgresql.org/docs/9.2/static/upgrading.html拡張機能の読み込み
となっています。 デフォルトでは、Homebrewは利用可能なすべてのContribエクステンションをビルドします。利用可能なすべての拡張機能のリストを見るには 利用可能なすべてのエクステンションのリストを見るには、psqlのコマンドラインから次のように実行します。
SELECT * FROM pg_available_extensions;エクステンション名を読み込むには、目的のデータベースに移動し、以下を実行します。 を実行します。 CREATE EXTENSION [extension name]; と入力してください。 例えば、現在のデータベースにtablefuncエクステンションをロードするには次のようにします。 を実行します。 CREATE EXTENSION tablefunc; を実行します。 CREATE EXTENSIONコマンドの詳細については、以下を参照してください。
http://www.postgresql.org/docs/9.2/static/sql-createextension.html For エクステンションの詳細については、以下を参照してください。
http://www.postgresql.org/docs/9.2/static/contrib.htmlその他
一部のマシンでは、共有メモリのプロビジョニングが必要な場合があります。 http://www.postgresql.org/docs/9.2/static/kernel-resources.html#SYSVIPC postgres gemをインストールする際、ARCHFLAGSを含めることを推奨します。 ARCHFLAGS="-arch x86_64" gem install pg となります。 sudoを使わずにgemをインストールするには、Homebrewのwikiを参照してください。
ログイン時にlaunchdにpostgresqlを起動させるには、次のようにします。 ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents その後、postgresqlをロードします。 launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist または、以下のようにしてください。 launchctlが必要なければ、次のように実行します。 pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start Warning:リンクできませんでした。 postgresql.リンク解除...エラーです。brew link
ステップが完了しませんでした。 エラー:
brew linkステップが完了しませんでした。
brew link postgresql'を使用して再試行することができます。 ==> まとめ 🍺 /usr/local/Cellar/postgresql/9.2.4: 2831 files, 38M, built in 4.9 minutes
解決方法 以下のコマンドを実行して、フォルダのパーミッションを変更します。 gt; sudo chown jeanosorio /usr/local/share/man/man7 次に brew link postgresql /usr/local/Cellar/postgresql/9.3.1... をリンクします。421 シンボリックリンクの作成 そして最後に sudo ARCHFLAGS="-arch x86_64" gem install pg となりました。 Fetching: pg-0.17.0.gem (100%) ネイティブ拡張を構築します。 これには しばらく時間がかかります。pg-0.17.0のインストールに成功しました。
MacPortsの使用を避けたい場合は、Postgres Appをダウンロードし、Applicationディレクトリに配置します。
次に、新しくダウンロードした pg_config
の場所を指定します。
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/latest/bin/pg_config
ヘッダーが見つからない場合は、アプリの include
ディレクトリを指定してみてください。
gem install pg -- --with-pg-include='/Applications/Postgres.app/Contents/Versions/latest/include/'
MacPortsでpostgresをインストールすることができませんでした。代わりに、Postgress.appをインストールし、以下を呼び出しました。
gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config
注:新しいバージョンでは(少なくとも9.3では)、パスは実際には次のようになります: /Applications/Postgres.app/Contents/Versions/9.3/bin/pg_config
私の場合は(MavericksでPG 0.16.0が必要でした)、MacPortsを介してpostgresqlをインストールしました。
sudo port install postgresql90
そして、次に
gem install pg -v '0.16.0' -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
最新版の場合は、-v '0.16.0' を差し引く必要があります。
gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config
Homebrewをインストールしている場合は、MacPortsをインストールしてから 共存についての記事にしてください。