3

Brewを使用してPostgreSQLをインストールしました(以前はPostgreSQL Webサイトにあるスタンドアロンインストーラーを使用してインストールしようとしました)が、バンドルインストールを実行しようとすると次のエラーメッセージが表示されます。

Errno::EACCES: Permission denied - /Users/xxxxx/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1/.gemtest An error occurred while installing pg (0.14.1), and Bundler cannot continue. Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.

Stackoverflowでさまざまな解決策を見つけましたが、どれも問題を解決していないようです。

psql --version戻り値:9.2.1 which psql戻り値:/ usr / local / bin / psql

誰かがこのエラーを認識し、および/またはそれを修正する方法についてさらにアイデアがありますか?

それができなければ、ローカルでSQLiteを使い続け、本番環境でPostgreSQLを使用できると思います。ファイルに次の変更を手動で行う必要があると思いdatabase.ymlます(初めてデプロイしようとしています)。

production:
  adapter: postgresql
  encoding: unicode
  database: myapp_production
  pool: 5
  username: myapp
  password: 

そして、私のgemfileに以下を含めます(bundle installを実行すると同じエラーが返されることに注意してください。ただし、本番サーバーへのPostgreSQLのインストールではエラーが発生しないと想定しているため、引き続き機能すると思いますか?) :

group :production do

  gem 'pg'

end

編集:それをスクラッチします。gem'pg'がgemfileに含まれている場合、Webrickはまったく実行されません。

編集2:また、rvmsudo gem install pgを実行しようとすると、次のようになります。

ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file
collect2: ld returned 1 exit status
make: *** [pg_ext.bundle] Error 1

**編集3:**敗北を認める。

こんにちは皆さん、

まず、すべてのあなたの助けに感謝します。

残念ながら、2日後、私は敗北を認めなければなりません。

どちらの方法を試しても、EnterpriseDBバージョンとHomebrewでインストールされたバージョンのPostgreSQLのどちらを使用しても、pggemをインストールすることはできません。私は次のすべてを試しました:

install gem pg

sudo install gem pg

rvmsudo install gem pg

sudo env PATH=/library/PostgreSQL/9.2/bin:$PATH gem install pg (when using the EnterpriseDB installer)

rvmsudo env PATH=/library/PostgreSQL/9.2/bin:$PATH gem install pg (ditto)

rvmsudo env PATH=/library/PostgreSQL/9.2/bin:$PATH ARCHFLAGS="-arch x86_54" gem install

上記のいずれの方法を選択しても、次のエラーが返されます。

ld: in /usr/local/lib/libssl.0.9.8.dylib, missing required architecture x86_64 in file

バンドルインストールを介してgemをインストールしようとすると、次のエラーが発生します。

Errno::EACCES: Permission denied - /Users/xxx/.rvm/gems/ruby-1.9.3-p194/gems/pg-0.14.1/.gemtest
An error occurred while installing pg (0.14.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.14.1'` succeeds before bundling.

これ以上の時間を費やす余裕はないので、弾丸をかじって、おそらく代わりにMySQLを使用します。

再度、感謝します、

グレイム

最終編集-修正されました!他の人に役立つかもしれないので、私がそれをどのようにしたかについては、以下の私の答えを参照してください**

4

3 に答える 3

6

はい!!!!

申し訳ありませんが、私は空中に飛び出すかもしれないと思います。私はそれを機能させたかもしれないと思います。

他の誰かがこの問題に遭遇した場合に備えて、GemをSnow Leopardにインストールするために私が行ったことは次のとおりです(Lionではプロセスが異なる場合があります)。

1)古いバージョンのPostgreSQL(EnterpriseDBバージョンとHomebrewバージョンの両方)を必ずアンインストールしてください。EnterpriseDBの場合は、このStackoverflowの質問/回答を参照してください。Homebrewの場合は、単に実行してくださいbrew uninstall postgresql --force

2)を実行しbrew install postgresqlてHomebrewのインストールを取得します。

3)さて、問題(Chris Traversが以前のコメントで指摘したように-Chrisに感謝します!)はOpenSSLが原因であるように見えます。私のバージョン(今日まで聞いたことがなかったので、Snow Leopardのデフォルトバージョンだったと思います)は古いバージョンだったようです。そのため、Homebrewを使用してより最新のバージョンをインストールする必要がありました(私も使用しました) MacPortsで古いバージョンをアンインストールする-MacPortsとHomebrewを同じコンピューターにインストールするのが適切かどうかはわかりませんが...):

  1. Macports:sudo port uninstall openssl
  2. 自作:brew install openssl

これにより、OpenSSLが最新の64ビットバージョンに更新されます(私は思いますか?)。

4)別のStackoverflow投稿に続いて、私は次のことを行いました:

sudo gem install pg -- --with-ldflags='-L/usr/local/Cellar/openssl/0.9.8s' 

成功!それはうまくいったようです。インストールされているすべてのものをチェックするために新しいRailsプロジェクトをセットアップする必要がありますが、gem'pg'がGemfileに含まれている場合、バンドルインストールは問題を引き起こさないため、指が交差しました:-)

これが他の人に役立つことを願っています。

于 2012-10-09T17:13:24.767 に答える
1

インストールでOpenSSL(ヘッダーファイルかどうかに関係なく)に関する何かが欠落しているように見えます。そこでインストールを再確認します。それができない場合は、このgemでSSLサポートを無効にすることを検討することをお勧めします。ソースを調べたところ、libpqに対してコンパイルされているようです。これは、とにかくOpenSSLにリンクできる可能性があるため、問題にはならない可能性があります。

于 2012-10-09T09:37:42.713 に答える
0

これが私のために働いたものです:

1)コンソールからpostgresgemをインストールする

brew install postgres
sudo env ARCHFLAGS="-arch x86_64" gem install pg

2)その後、GemFileで、開発にsqliteを引き続き使用できるようにします。

group :development, :test do
   gem 'sqlite3'
end
group :production do
  gem 'pg'
end
于 2013-06-23T04:48:37.117 に答える