我正在尝试安装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吗,或者至少能通过这个权限错误吗?
9条答案
按热度按时间dwbf0jvd1#
Ruby安装在
/usr/local/Cellar/ruby/...
中。这是一个受限的路径,只有当你使用提升的权限时才能写入,要么以root身份运行,要么使用
sudo
。我不建议你以root身份运行,因为你不了解路径和权限是如何工作的。你 * 可以 * 使用sudo gem install jekyll
,它会临时提升你的权限,给你的命令写入该目录所需的权限。但是,我建议您认真考虑一下,不要这样做,而是使用RVM将Ruby安装到您自己的主目录中,在那里您可以自动安装Rubies和gem,而不会出现权限问题。请参阅“单用户安装”中有关安装到本地RVM沙箱的说明。
因为您的
~/.bash_profile
中有RVM,但是它没有出现在Gem环境列表中,所以我怀疑您要么没有按照正确安装RVM的说明操作,要么没有使用最重要的命令:若要配置默认Ruby,请执行以下操作。
对于大多数用户来说,“单用户安装”是最好的方式。如果你必须在这种配置下使用
sudo
,那你就做错了。ctehm74n2#
我想分享我所遵循的步骤,为我修复了这个问题,希望它可以帮助其他人(也作为提醒我,以防类似的事情再次发生)
我遇到的问题(与OP的问题相同)可能与使用homebrew安装Ruby有关。
为了解决这个问题,首先我更新了自制:
(If brew doctor出现任何问题,首先修复它们。)然后我卸载了ruby
如果此时未安装rbenv,则
然后我使用 rbenv 安装ruby。首先,找到所需的版本:
安装该版本(例如2.2.2)
然后将全局版本设置为所需的ruby版本:
此时,您应该看到为以下命令设置的所需版本:
和
现在您应该能够安装bundler:
在所需的项目文件夹中,您可以安装所有必需的gem:
yfjy0ee73#
看起来像是权限问题。这是对我有效的方法
或者在你的情况下
这有什么作用:
这是告诉系统更改文件以将所有权更改为当前用户。一定是在安装某些内容时出现了问题。通常这是因为有多个帐户或用户使用sudo进行安装,而他们不应该总是使用sudo。
r6hnlfcb4#
使用
export GEM_HOME=/home/<user>/gems
将gems目录设置为运行gem install
的用户目录后,问题已解决。dhxwm5r45#
我想这个问题是在你使用rbenv的时候发生的。尝试下面的命令来解决它。
inkz8wg96#
我在
Ubuntu
上使用rvm
时遇到了同样的问题,通过在我的终端上将source
设置为短期解决方案,解决了这个问题:source $HOME/.rvm/scripts/rvm
或
source /home/$USER/.rvm/scripts/rvm
并配置一个默认的RubyVersion,在我的例子中是
2.3.3
。rvm use 2.3.3 --default
一个长期的解决方案是将您的
source
添加到您的.bashrc
文件中,以永久使Ubuntu在.rvm
中查找所有Ruby文件。加:
source .rvm/scripts/rvm
进入
$HOME/.bashrc
档案。voj3qocg7#
运行以下命令将权限重置为user/local:
如果这对你有用,请随时反馈!
7kqas0il8#
通过homebrew(即
brew update & brew install rbenv
)安装rbenv或rvm作为Ruby版本管理器(我更喜欢rbenv),但在rbenv的情况下,请确保按照here和here的指示将rbenv添加到$PATH中。为了更深入地解释rbenv是如何工作的,我推荐this。
qyyhg6bp9#
如果您在Windows环境中工作,我建议您使用管理员权限运行命令提示符