Mac で Discourse(開発用)をインストールしようとした際、以下のエラーが発生します。
ERROR: While executing gem ... (Gem::FilePermissionError)
/Library/Ruby/Gems/2.6.0 ディレクトリへの書き込み権限がありません。
これを解決する方法を教えてください。
よろしくお願いいたします。
Mac で Discourse(開発用)をインストールしようとした際、以下のエラーが発生します。
ERROR: While executing gem ... (Gem::FilePermissionError)
/Library/Ruby/Gems/2.6.0 ディレクトリへの書き込み権限がありません。
これを解決する方法を教えてください。
よろしくお願いいたします。
Discourse のインストールスクリプトを実行しましたか?
macOS Catalina を使用していますか?その場合、Discourse がシステムバージョンの Ruby を使用しようとしていることが問題のようです。これを避けるために、rbenv などのツールを使用して Ruby のバージョンを設定することをお勧めします。
macOS Catalina を使用しています。そのスクリプトを実行しましたが、おそらく既にインストールされていたため、途中で失敗しました。
which rbenv の出力を貼り付けていただけますか?
カスタムの .bashrc または .zshrc はお持ちですか?
/usr/local/bin/rbenv
正直よくわかりません。ないと思うのですが、もしかしたらあるかもしれません。
Discourseディレクトリにcdして、which rubyの出力を共有してください。
おっと、気づきませんでした。実行したら /usr/bin/ruby になりました。
はい、Discourse でシステム Ruby を使用しているため、その問題が発生しています。
echo $PATH と入力して PATH 変数を確認してください。/Users/<your username>/.rbenv/bin と /Users/<your username>/.rbenv/shims がリストされているはずです。
もしリストされていない場合は、シェル設定ファイル .bashrc または .zshrc に追加してください。ZSH の場合は、以下のように追加します:export PATH=/path/number/1:/path/number/2:$PATH
リストされている場合は、順序を確認してください。チェーンの後方にある場合、システム Ruby よりも先に読み込まれていない可能性が高く、Discourse でシステム Ruby が使用されています。上記と同じ方法で、パスをチェーンの前方に移動できます。
@david さんが開発環境の設定に Ruby のバージョンチェックを追加したと思っていたのですが? ![]()
それはテーマ CLI のためのものだったと思います。
ここに同様のチェックを追加する方法はありますか?
DiscourseではRubyのバージョン互換性を既に確認していると思います。ここで問題となっているのは、macOSにバンドルされているシステムレベルのRuby向けに、当社のDiscourseバンドルがGemをインストールできない点です。詳細については誤っている可能性もありますが、これはAppleがmacOS Catalinaで変更を加えたことに起因するものだと考えています。私も同様の問題に直面し、原因を特定するために相当なトラブルシューティングが必要でした。
OPと同じエラーが発生しました。
これを読んでください:
これは実際にはファイル権限のエラーではなく、インストーラーが間違った場所を見ていたのではないかと考えました。
ターミナルを再起動すると.zshrcファイルが再読み込みされることを知っていたので、ターミナルを閉じて開き直しました。
インストールスクリプトを再度実行したところ、このエラーは発生しなくなりました。
この問題は、インストールプロセス中に戦略的に配置されたターミナルのリフレッシュで解決できますか? ![]()