2012-12-25 5 views
10

Ich versuche gitlab einzurichten und damit einige Edelsteine ​​von einem anderen Benutzerkonto mit sudo, installieren, aber ich bekomme ständig Permission denied Fehler.Errno :: EACCES: Berechtigung verweigert bei der Installation von Gems über Gitlab

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

Sie versucht haben, nur 'su - gitlab' als dieser Benutzer anmelden und dann die entsprechenden Befehle ausführen und wenn Sie fertig sind Logout ? Es könnte einfacher sein. – iain

+0

Ja. Ich tat. Gleiches Ergebnis ('Errno :: EACCES: Berechtigung verweigert - pymgs.rb-0.3.2.gem') – Alex

+1

Sie könnten versuchen, lokale Projektverzeichnisse für die Bin- und die Edelstein-Verzeichnisse zu verwenden. Ich mache es jetzt bei allen meinen Projekten, z. 'cd/home/gitlab/gitlab' dann' bundle install --binstubs --path vendor' (als gitlab) und alle Edelsteine ​​gehen in ./vendor und alle exes in ./bin, relativ zum Projekt root. – iain

Antwort

13

Lain vorgeschlagen, um zu versuchen, die Bündel in ein anderes Unterverzeichnis zu installieren. Als das funktionierte, wurde klar, dass das Problem mit den Berechtigungen im aktuellen Verzeichnis verbunden war.

Die Ausführung chown -R gitlab:gitlab . hat das Problem gelöst.

In der Gitlab Installationsanleitung gibt es einen gem install Befehl vor unserer Geschichte, die als root ausgeführt wurde und wahrscheinlich die gemfile oder eine andere Datei hatte Berechtigungen während dieser ändern.

+3

Ändern Sie nie alle Berechtigungen oder Besitzer in allen Verzeichnissen und Unterverzeichnissen, wenn Sie wirklich wissen, was die Änderung betrifft. – Tecnocat

8

ein Berechtigungs Fehler in Ruby-2.0.0-p195 rvm mit Bündel Dies wird

installieren

verwenden Sie rvm? hast du chmod mit sudo versucht?

chmod 755 (or 777) ~/.rvm/gems/ruby-2.0.0-p195/build_info/

0

Achten Sie darauf, Ihre Gemfile.lock wird vom Benutzer im Besitz Ausführen des Befehls