Domanda

Rails 3.0.0, 2.2.15 passeggeri:

  • Creare un nuovo progetto Rails
  • Add gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3' al tuo Gemfile
  • Do bundle install
  • Tutto OK, a partire da rails/script server e accesso anche funziona
  • Tuttavia, quando si accede con il Passeggero, dice:

git: //github.com/lmumar/paperclip.git (a Rails3) non è estratto. Eseguire bundle install (Bundler :: GitError)

bundler pack

Ho cercato (non aiuta) e l'impostazione BUNDER_HOME a ~ / .bundler (GIT Paperclip viene installato lì da bundler install) nei .htaccess e vari luoghi in config / *. RB, ma questo non era successo, anche.

~ / .bundler è di proprietà dello stesso utente come il progetto Rails (corse passeggeri sotto questo utente), quindi non può essere un problema di permessi. sudo è installato e chiamato da bundle install.

Eventuali suggerimenti?

È stato utile?

Soluzione 2

Solution (mi ci sono voluti un paio d'ore):

Mare sicuro che RAILS_ROOT/.bundle/config (SetEnv ecc non ha funzionato per me) contiene:

--- 
BUNDLE_PATH: /home/xxxxx/.bundler

Nota BUNDLE_PATH, non BUNDLER_PATH! C'è stato anche un DISABLED_SHARED_GEMS = 1 ingresso, l'ho rimosso.

Poi bundler riconosce il percorso corretto anche quando caricato da passeggeri. Senza di passeggeri, ha sempre funzionato (e /home/xxxxx/.bundler utilizzato, come detto nella questione)

Altri suggerimenti

Im usato per avere questo problema, risolvere utilizzando

bundle --deployment

che installerà le gemme in vendor / bundle

È possibile utilizzare bundle install --path vendor/bundle installare le gemme a livello locale, invece di in gemme di sistema.

Se si desidera continuare a utilizzare le gemme di sistema, però, è una sola riga nella configurazione di Apache per dire passeggero dove trovare il vostro gemme di sistema:

SetEnv GEM_HOME /Users/bob/.bundle

C'è un interessante resoconto po 'più elaborato sul mio blog all'indirizzo Utilizzo di passeggeri con GEM_HOME set

mi sono imbattuto in questo problema durante la scrittura di un'applicazione Sinatra. Per risolverlo ho aggiunto questa linea a config.ru .

require 'bundler/setup'

Ho avuto lo stesso problema ed è stato a causa di un problema di diritti con RVM.

L'utente che esegue il server web non può verificare se GIT gioiello è disponibile. Come "Passeggero" con l'utente web di eseguire, non può fare questo controllo.

La soluzione che ho trovato è stato quello di aggiungere l'utente web al gruppo RVM:

usermod -a -G rvm apache

Spero che questo vi aiuterà altre persone che non vogliono avere GEM distribuito in "vendor / bundle".

Ho installato la gemma del passeggero e il suo modulo di Apache come utente sudo e che è stato il problema nel mio caso.

Il motivo per cui ho usato sudo inizialmente era che ho copiato il codice da episodio Railscasts' 122. Installazione senza accesso sodu risolto questo problema. Dal Rubino è stato installato utilizzando rvm senza l'accesso sudo sul mio sistema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top