Jekyllをインストールしようとしています。 gem install jekyll
を実行した後、次のエラーが表示されます。
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /usr/local/lib/Ruby/gems/2.0.0/gems/jekyll-1.0.3/CONTRIBUTING.md
gem list
を実行するとJekyllがインストールされていることがわかりますので、完全に混乱しています:
*** LOCAL GEMS ***
bigdecimal (1.2.0)
classifier (1.3.3)
colorator (0.1)
commander (4.1.3)
directory_watcher (1.4.1)
fast-stemmer (1.0.2)
highline (1.6.19)
io-console (0.4.2)
jekyll (1.0.3)
json (1.7.7)
kramdown (1.0.2)
liquid (2.5.0)
maruku (0.6.1)
minitest (4.3.2)
posix-spawn (0.3.6)
psych (2.0.0)
pygments.rb (0.5.1)
rake (0.9.6)
rdoc (4.0.0)
rubygems-update (2.0.3)
safe_yaml (0.7.1)
syntax (1.0.0)
test-unit (2.0.0.0)
yajl-Ruby (1.1.0)
過去にユーザーパスに多くの問題があったので、このエラーに何か関係があるのではないかと考えています。
gem env
の出力は次のとおりです。
RubyGems Environment:
- RUBYGEMS VERSION: 2.0.3
- Ruby VERSION: 2.0.0 (2013-02-24 patchlevel 0) [x86_64-darwin12.3.0]
- INSTALLATION DIRECTORY: /usr/local/Cellar/Ruby/2.0.0-p0/lib/Ruby/gems/2.0.0
- Ruby EXECUTABLE: /usr/local/Cellar/Ruby/2.0.0-p0/bin/Ruby
- EXECUTABLE DIRECTORY: /usr/local/Cellar/Ruby/2.0.0-p0/bin
- RUBYGEMS PLATFORMS:
- Ruby
- x86_64-darwin-12
- GEM PATHS:
- /usr/local/Cellar/Ruby/2.0.0-p0/lib/Ruby/gems/2.0.0
- /Users/me/.gem/Ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
これが私の「.bash_profile」です。
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
PATH=$PATH:above/path/to/gems
source ~/.rvm/scripts/rvm
誰かが私にJekyllをインストールするのを手伝ってもらえますか、少なくともこの許可エラーを過ぎてしまうでしょうか?
Rubyは/usr/local/Cellar/Ruby/...
にインストールされます。
これは制限されたパスであり、rootとして実行するか、Sudo
を使用して、昇格した特権を使用する場合にのみ書き込むことができます。パスとパーミッションがどのように機能するか理解していないので、ルートとして実行することはお勧めしません。 canはSudo gem install jekyll
を使用できます。これは一時的に権限を高め、コマンドにそのディレクトリへの書き込みに必要な権限を与えます。
ただし、そうしないことに真剣に取り組むことをお勧めします。代わりに、RVMを使用してRubyを自分のホームディレクトリにインストールします。 。 「 Single-User installations 」のローカルRVMサンドボックスにインストールするための指示を参照してください。
~/.bash_profile
にRVMがありますが、Gem環境のリストに表示されないため、RVMを正しくインストールするための指示に従わなかったか、重要なものを使用していません。コマンド:
rvm use 2.0.0 --default
デフォルトのRubyを構成します。
ほとんどのユーザーにとって、「シングルユーザーインストール」が道です。その構成でSudo
を使用する必要がある場合は、何か問題があります。
他の誰かを助けることができることを期待して、この問題を修正した手順を共有したいと思いました(そして、このようなことが再び起こった場合のリマインダーとして)
私が抱えていた問題(OPと同じ)は、Rubyをインストールするために homebrew を使用することに関係している可能性があります。
これを修正するために、まずhomebrewを更新しました。
brew update && brew upgrade
brew doctor
(醸造医が問題を見つけた場合は、まずそれらを修正します。)その後、Rubyをアンインストールしました
brew uninstall Ruby
この時点でrbenvがではなくにインストールされている場合、
brew install rbenv
brew install Ruby-build
echo 'export RBENV_ROOT=/usr/local/var/rbenv' >> ~/.bash_profile
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
次に、rbenvを使用してRubyをインストールしました。まず、目的のバージョンを見つけます。
rbenv install -l
そのバージョンをインストールします(例:2.2.2)
rbenv install 2.2.2
次に、グローバルバージョンを目的のRubyバージョンに設定します。
rbenv global 2.2.2
この時点で、次のコマンドの目的のバージョンセットが表示されます。
rbenv versions
そして
Ruby --version
これで、Bundlerをインストールできるはずです。
gem install bundler
そして、目的のプロジェクトフォルダに配置したら、必要なすべてのgemをインストールできます。
bundle
bundle install
パーミッションの問題のようです。これは私のために働いたものです
Sudo chown -R $(whoami) /Library/Ruby/Gems/*
またはあなたの場合
Sudo chown -R $(whoami) /usr/local/lib/Ruby/gems/2.0.0/gems/
Gemsディレクトリを、gem install
を使用してexport GEM_HOME=/home/<user>/gems
を実行するユーザーディレクトリに設定すると、問題は解決しました。
rvm
でUbuntu
を使用すると同じ問題が発生しましたが、ターミナルでsource
を短期ソリューションとして設定することで修正されました。
source $HOME/.rvm/scripts/rvm
または
source /home/$USER/.rvm/scripts/rvm
デフォルトのRubyバージョン、私の場合は2.3.3
を設定します。
rvm use 2.3.3 --default
長期解決策は、source
を.bashrc
ファイルに追加して永続的に Ubuntuを.rvm
に見えるようにすることですRubyファイル。
追加:
source .rvm/scripts/rvm
に
$HOME/.bashrc
ファイル。