Früher gab es bei Bundler mal einen Subbefehl, der die Gems in ein Verzeichnis des Projektes kopierte und dann nur noch diese lokalen Kopien nutzte. Der wurde aber vor einigen Jahren deprecated. Soweit ich es gerade allerdings in der Dokumentation zu Bundler nachvollziehen kann, scheint es jetzt die "--path"-Option zum command "install" zu geben.
Rein an der Doku orientiert, müsste es dann so ablaufen, dass die Entwickler der App ganz normal "bundle" benutzen.
Vor dem Deploy wird dann das gesammte Projekt erst einmal auf eine Staging-Maschine gezogen, mit dem Befehl "bundle install --path=./gem_folder --without test --without development" alle Produktionsabhängigkeiten installiert.
Jetzt einmal Netzwerkkabel der Stagingmaschine ziehen und kurz antesten ob wirklich alles läuft wie gewünscht.
Nun kann man das komplette Ding in der Theorie auf den Server kopieren und dort dann mit "bundle install --path=./gem_folder --local --without test --without development" bundler noch einmal darauf einstimmen wo es seine Gems findet und dann kann man dort das Projekt nutzen wie gehabt.
Inwiefern sich das allerdings mit den verschiedenen Application-Servern verträgt kann ich so nicht sagen. Ausserdem besteht zuvor das Problem überhaupt einmal Bundler und Ruby auf der anderen Kiste zu installieren und allgemein das System immer up-to-date zu haben.
Lieber im Rahmen der wöchentlichen System-Updates auch gleich die aktuellste Version der Applikation deployen.
_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset
Github Profil –
Bitbucket Profil