2015-07-23 12 views
13

Ich habe eingeschränkte Privilegien auf einem geteilten Rechner, den ich benutze, also kann ich keine Edelsteine ​​installieren, wie ich es gewohnt bin. Zum Beispiel:Installiere einen Edelstein im lokalen Ordner

$ gem install request-log-analyzer 
ERROR: While executing gem ... (Gem::FilePermissionError) 
    You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory. 

Ist es möglich, einen Edelstein lokal zu installieren? (Wenn es darauf ankommt, versuche ich this gem zu installieren.)

Ich habe eine Reihe von Posts auf Stack Overflow gesehen, die über die Verwendung von Bundler oder gemfiles sprachen, aber ich installiere dieses Juwel nicht für ein Ruby on Rails Projekt - I Ich möchte es nur isoliert benutzen.

Ich bin Linux, nicht sicher, welche Geschmack obwohl.

Antwort

15

Fügen Sie die --local Flagge auf Ihre installieren:

gem install --local request-log-analyzer 

Wenn das Probleme verursacht, versuchen Sie das Juwel manuell herunterzuladen und zu zeigen gem es direkt mit:

gem install --local path/to/gem/filename.gem 

Wenn Sie installieren möchten es zu Ihrem Benutzerhaus, wie pro rubygems:

Wenn Sie die Option --user-install verwenden, installiert RubyGems die Edelsteine ​​ in einem Verzeichnis in Ihrem Home-Verzeichnis, etwa ~/.gem/ruby ​​/ 1.9.1. Die Befehle, die von den Edelsteinen bereitgestellt werden, die Sie installiert haben, enden in ~/.gem/ruby ​​/ 1.9.1/bin. Damit die dort installierten Programme für Sie verfügbar sind, müssen Sie ~/.gem/ruby ​​/ 1.9.1/bin zur Umgebungsvariablen PATH hinzufügen.

Der Befehl hierfür wäre nur

gem install --user-install request-log-analyzer 
+0

" --force "hat für mich funktioniert. gem install --force --local * .gem –

0

Sie könnten einfach RVM verwenden: Ruby Version Manager. Es ist ein kompletter Versionsverwalter, ähnlich wie der node version manager (nvm) und andere, der es ermöglicht, verschiedene Versionen von Ruby und verschiedene Sammlungen von Edelsteinen für jedes Projekt zu haben. Es macht die Aufgabe, Edelsteine ​​voneinander und vom System Ruby getrennt zu halten, aber auf Kosten des Erlernens eines kompletten Versionsmanagers.

Wenn ohne root ausgeführt wird, wird es lokal in ~/.rvm installiert und wirkt sich nicht auf andere Benutzer aus.

+0

Hmm, ist es eine Möglichkeit, es rvm ohne die Installation zu tun? Da es sich um einen gemeinsam genutzten Computer handelt, versuche ich, die Anzahl der Dinge, die ich installieren muss, zu minimieren. –

+0

Der Vorteil von RVM ist kein Privileg erforderlich. Sie könnten es "von Hand" tun, aber es ist komplizierter .... Einrichten Bash selbst, etc. – rholmes

+0

@mchenja RVM ist großartig und ich würde Ihnen empfehlen, es zu verwenden. Aber wenn Sie nicht möchten, habe ich eine Lösung für die lokale Installation veröffentlicht. – jkeuhlen

26

Sie können versuchen: gem install --user-install gem_name

+4

Dies ist die richtige Antwort, zumindest in Ruby 1.9.3. Die angenommene Antwort ist verwirrend weil es sowohl die Installation eines Gems aus einer lokalen Datei mit dem --local Flag als auch eines lokalen Verzeichnisses erwähnt – jdlourenco

+0

Ich musste auch die Option '-n ~/bin' hinzufügen, weil sie immer noch versuchte eine ausführbare Datei in'/zu verlinken usr/local/bin'. Vollständig: 'gem install --user-install -n ~/bin gemm_name'. –

Verwandte Themen