webentwicklung-frage-antwort-db.com.de

Geben Sie das Installationsverzeichnis für gem an

Ich habe hier Schwierigkeiten. Ich arbeite mit einem Rails 2.3-Projekt (arbeite auf dem Produktionsserver über ssh - fragen Sie nicht nach dem Grund). Hier ist das Gemfile . Wenn delayed_jobs zu starten versucht, sagt die Ausgabe, dass ich den Bundler gem installieren muss. Das Problem ist, dass das gemdir /var/lib/gems/1.8/ ist und ich nicht die Schreibrechte für dieses Verzeichnis habe. Es gibt jedoch ein Verzeichnis unter ~/projects/shared/gems/Ruby/1.8/gems, in das ich schreiben kann. 

Wie kann ich den Installationspfad für einen Edelstein festlegen?

22
Almaron

Sie können Ihrer config.ru -Datei Folgendes hinzufügen:

ENV['GEM_HOME']="#{ENV['HOME']}/projects/shared/gems/Ruby/1.8/gems"
ENV['GEM_PATH']="#{ENV['GEM_HOME']}:/var/lib/Ruby/gems/1.8"
require 'rubygems'
Gem.clear_paths

Dadurch erfahren Sie in Ihrer Rack-App, wo Sie nach Edelsteinen suchen müssen.

Konfigurieren Sie auch Ihren Server .bashrc

export GEM_HOME="$HOME/projects/shared/gems/Ruby/1.8/gems"
export GEM_PATH="$GEM_HOME:/var/lib/Ruby/gems/1.8"
12
dpaluy

Um foo gem in einem angegebenen Ordner zu installieren, verwenden Sie einfach die Option --install-dir, d. H.

$ gem install --install-dir /path/to/gems/folder foo

Es hilft, wenn:

  • bundle install kann nicht verwendet werden - z. wenn man bundle gem selbst installieren möchte oder einen gem (der nicht in Gemfile aufgeführt ist) in den Ordner bundle installieren möchte
  • Der Befehl Sudo gem install schlägt fehl, weil keine Schreibberechtigungen für einen Standardinstallationspfad vorhanden sind

Hoffentlich hilft das.

26
Oleg Afanasyev

Die Umgebungsvariable GEM_HOME definiert den Installationsort des Edelsteins. Sie müssen den gewünschten Ort einstellen. Der Befehl ist betriebssystemspezifisch. 

In Windows ist es set

set GEM_HOME=[path]/projects/shared/gems/Ruby/1.8/gems

Linux wäre export

export GEM_HOME=~/projects/shared/gems/Ruby/1.8/gems
13
IKA

bundler akzeptiert eine Option --path.

bundle install --path vendor/bundle
0
Brad