2014-09-27 11 views
11

aus Versehen Ich lief auf meinem Projekt und jetzt, wenn ich es als ich bundle install laufen lasse Ich bekomme Erlaubnis verweigert Fehler (unten). Ich habe die Anleitung hier https://github.com/bundler/bundler/blob/master/ISSUES.md#other-problems versucht, auch versucht, mein Projekt in ein neues Verzeichnis und laufendes Bundle von dort klonen, keine Verwendung. Bitte helfen Sie!kann nicht wiederherstellen von `sudo Bundle installieren '

error: cannot open .git/FETCH_HEAD: Permission denied 

Retrying git fetch --force --quiet --tags "/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b" due to error (2/3): Bundler::Source::Git::GitCommandError Git error: command `git fetch --force --quiet --tags "/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b"` in directory /usr/local/lib/ruby/gems/2.1.0/bundler/gems/em-postgresql-adapter-3dfcc60378e9 has failed. 
If this error persists you could try removing the cache directory '/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b' 
error: cannot open .git/FETCH_HEAD: Permission denied 

Retrying git fetch --force --quiet --tags "/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b" due to error (3/3): Bundler::Source::Git::GitCommandError Git error: command `git fetch --force --quiet --tags "/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b"` in directory /usr/local/lib/ruby/gems/2.1.0/bundler/gems/em-postgresql-adapter-3dfcc60378e9 has failed. 
If this error persists you could try removing the cache directory '/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b' 
error: cannot open .git/FETCH_HEAD: Permission denied 

Git error: command `git fetch --force --quiet 
--tags "/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b"` in directory 
/usr/local/lib/ruby/gems/2.1.0/bundler/gems/em-postgresql-adapter-3dfcc60378e9 
has failed. 
If this error persists you could try removing the cache directory 
'/home/akonsu/.bundler/cache/git/em-postgresql-adapter-361cdc05eba5661bb17040a7a6c2a093f9c2263b' 
+0

'chown -R akonsu: akonsu/home/akonsu/.bundler'? – Smar

+0

Oder entfernen Sie das Cache-Verzeichnis wie der Fehler sagte ...? – Smar

+0

versuchte das ... Ich bin der Besitzer. – akonsu

Antwort

10

Klonen der Repo zu einem neuen Verzeichnis würde nicht helfen. Sie haben die Edelsteine ​​in das Verzeichnis der Standard-Edelsteine ​​anstatt in ein bündelspezifisches Verzeichnis installiert.

Die beste Option besteht darin, das Paket in einem neuen Verzeichnis zu installieren und die im Systempfad installierten Edelsteine ​​zu ignorieren.

Versuchen Sie bundle install --path /home/akonsu/.new_project_bundle. Sie müssen diese Option nicht jedes Mal angeben. Es ist in Erinnerung.

http://bundler.io/v1.3/man/bundle-install.1.html

Darüber hinaus müssen Sie die Berechtigungen des Bündler-Cache-Verzeichnis setzen, wie in den Kommentaren erwähnt (oder löschen).

+0

danke. Was sind die anderen Optionen? – akonsu

+0

Wenn Sie die vorhandenen installierten Gems verwenden möchten: Festlegen der richtigen Berechtigungen für das System Gem-Verzeichnis, was bedeutet, dass der normale Benutzer Schreibrechte für /usr/local/lib/ruby/gems/2.1.0 erhält. Aber das ist keine wirklich gute Idee. Eine andere einfachere Option wäre, GEM_HOME auf etwas wie ~/.ruby_gems/in Ihrer bashrc oder bash_profile (oder gleichwertig) zu setzen. Dies bedeutet wiederum, dass Sie Ihre aktuelle Installation ignorieren. Dies hat auch Auswirkungen auf andere Ruby-Apps, wenn Sie welche haben, da sie ihre Edelsteine ​​in diesem neuen GEM_HOME nicht finden würden. Sie müssen die Bundle-Installation für alle Apps durchführen. – brahmana

22

Ich hatte heute das gleiche Problem heute in meinem Mac. Ich löste es, indem ich den Ordner ~/.bundle löschte.

Danach lief ich bundle install --path ~/.bundle und alles funktionierte wieder gut.

2

Lesen Sie, was auf der Website des Bundlers angegeben ist und keine externe Hilfe benötigt wird.

Edelsteine ​​werden auf Ihrem Standardsystemstandort für Edelsteine ​​installiert. Wenn Ihre System-Edelsteine ​​in einem root-eigenen Speicherort gespeichert sind (z. B. unter Mac OSX), fragt bundle nach Ihrem root-Passwort, um sie dort zu installieren.

Beim Installieren von Gems überprüft Bundler den Anbieter/Cache und dann die Edelsteine ​​Ihres Systems. Wenn ein Gem nicht im Cache gespeichert oder installiert ist, versucht Bundler, es aus den Quellen zu installieren, die Sie in Ihrer Gemdatei deklariert haben.

Die Option --system ist die Standardeinstellung. Übergeben Sie es, um nach der Verwendung der Option --path wie unten beschrieben zurückzukehren.

Installieren Sie Ihre Abhängigkeiten, auch Edelsteine, die bereits in Ihren System-Gems installiert sind, an einen anderen Ort als das Edelstein-Repository Ihres Systems. In diesem Fall installieren Sie sie nach Anbieter/Bundle.

Weitere Bundle-Befehle oder Aufrufe von Bundler.setup oder Bundler.require werden sich an diesen Speicherort erinnern.

Quelle: http://bundler.io/v1.9/bundle_install.html

-1

chmod 777 /usr/local/lib/ruby/gems/2.3.0/bundler/gems

Verwandte Themen