1. ホーム
  2. ruby-on-rails

[解決済み] MacのMavericksにPG gemをインストールできない。

2022-10-05 14:31:02

質問

railsプロジェクトで再び動作させるために、pg gemをインストールしようとしています。しかし、このエラーが発生します。

ネイティブエクステンションを構築中です。 これはしばらく時間がかかるかもしれません... ERROR: エラー pg をインストールしています: ERROR: gem ネイティブ拡張のビルドに失敗しました。

/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If

ビルドに失敗しました。 --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no 'libpq-fe.h header' が見当たりません。 * extconf.rbは失敗しました。 何らかの理由でMakefileを作成できませんでした。おそらく、必要なライブラリやヘッダが不足しているのでしょう。 チェック mkmf.logファイルを見てください。 設定オプションが必要かもしれません。 オプションが必要かもしれません。

提供されている設定オプション --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=/Users/jeanosorio/.rvm/rubies/ruby-2.0.0-p247/bin/ruby --with-pg --without-pg --with-pg-config --without-pg-config --pg_config --pg_configなし --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をインストールしようとすると、次のような警告が表示されます。

Warning: postgresql-9.2.4 はすでにインストールされていますが、リンクされていないだけです。

リンクしようとすると

<ブロッククオート

brew link postgresql /usr/local/Cellar/postgresql/9.2.4 をリンクしているところ... 警告。postgresqlをリンクできませんでした。リンク解除中...

エラーです。ファイルをシンボリックリンクできませんでした。 /usr/local/Cellar/postgresql/9.2.4/share/man/man7/WITH.7 は書き込み可能ではありません。 /usr/local/share/man/man7は書き込み可能ではありません。パーミッションを変更してください。 パーミッションを変更する必要があります。

助けてください

注意: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 ==> ./configure --prefix=/usr/local/Cellar/postgresql/9.2.4 --datadir=/usr/local/Cellar/postgresql/9.2.4/share/postgresql --docdir=/usr/local/Cellar/p ==> 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の以前のメジャーバージョンから既存のデータを移行するには、以下を参照してください。

http://www.postgresql.org/docs/9.2/static/upgrading.html

拡張機能の読み込み

デフォルトでは、Homebrew は利用可能なすべての Contrib 拡張をビルドします。利用可能なすべての拡張機能のリストを見るには のリストを見るには、psql コマンドラインから、実行します。

SELECT * FROM pg_available_extensions;

拡張機能の名前を読み込むには、目的のデータベースへ移動します。 に移動し、実行します。 CREATE EXTENSION [拡張機能名]を実行してください。

たとえば、現在のデータベースでtablefunc拡張機能をロードするには、次のようにします。 を実行します。 CREATE EXTENSION tablefuncを実行します。

CREATE EXTENSIONコマンドの詳細については、以下を参照してください。

http://www.postgresql.org/docs/9.2/static/sql-createextension.html 拡張機能に関する エクステンションの詳細については

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が不要な場合は launchctlが不要な場合は、次のように実行します。 pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start Warning: リンクできません。 postgresql. リンク解除中... エラーです。をクリックすると brew link ステップが完了しませんでした。 正常に構築されましたが、/usr/localにシンボリックリンクされていません。 brew link postgresql'を使って再試行できます。 ==> まとめ ? /usr/local/Cellar/postgresql/9.2.4: 2831ファイル、38M、4.9分でビルドされました。


解決方法

フォルダのパーミッションを変更するために、このコマンドを実行します。

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アプリ をダウンロードし、アプリケーションディレクトリに配置します。

次に、新しくダウンロードした 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/'