我正在尝试设置gitlab,从而使用sudo从其他用户帐户安装一些gem,
但我经常遇到Permission denied
错误。
sudo -u gitlab -H bundle install --deployment --without development test postgres
> Using ... ( a lot of successful gems there )
> Using pygments.rb (0.3.2) from https://github.com/gitlabhq/pygments.rb.git (at master)
> Errno::EACCES: Permission denied - pygments.rb-0.3.2.gem
> An error occurred while installing pygments.rb (0.3.2), and Bundler cannot continue.
> Make sure that `gem install pygments.rb -v '0.3.2'` succeeds before bundling.\
sudo -u gitlab -H gem install pygments.rb -v '0.3.2'
> Successfully installed pygments.rb-0.3.2
> 1 gem installed
> Installing ri documentation for pygments.rb-0.3.2...
> Installing RDoc documentation for pygments.rb-0.3.2...
# no matter how many times I run this command, I always get the same output
# as if the gem installation doesn't stick
# I've tried to chmod
chmod 777 -R /usr/local/lib/ruby
# then Again
sudo -u gitlab -H bundle install --deployment --without development test postgres
# same result, Errno::EACCES: Permission denied - pygments.rb-0.3.2.gem
答案 0 :(得分:15)
Lain建议尝试将软件包安装到另一个子目录中。当问题解决后,很明显问题出在当前目录中的权限上。
执行chown -R gitlab:gitlab .
解决了这个问题。
在gitlab安装指南中,在我们的故事之前有一个gem install
命令以root身份运行,可能gemfile
或其他一些文件在此期间有权限更改。
答案 1 :(得分:9)
这是使用bundle install
的ruby-2.0.0-p195 rvm中的权限错误 你正在使用rvm吗?你用sudo尝试chmod吗? chmod 755 (or 777) ~/.rvm/gems/ruby-2.0.0-p195/build_info/
答案 2 :(得分:0)
确保运行命令的用户拥有Gemfile.lock
答案 3 :(得分:0)
尽管亚历克斯的回答是正确的,但这对我也有帮助
sudo chown -R git:git /path/to/external/volume
我正在使用Digital Ocean的Gitlab图像
答案 4 :(得分:0)
我做了以下工作,并使其正常工作。
我更改了Gemfile的权限。即chmod 755 Gemfile
然后我做了一个sudo bundle install
。这样就可以正常工作,并且所有宝石都已安装。然后,我可以通过rails server