GEM Konfusion


#1

Hallo Leute,

ich habe aktuell ein Verständnis Problem bezüglich der Funktionsweise
vom gem und dessen Repositories. Folgende Situation. Ich pflege seit 2
Jahren eine App die auf Rails 1.1.6 basiert. Ein Update kommt hier aus
wirtschaftlichen Gründen (Zeit) momentan nicht in Frage. Sowohl auf
meinem Entwicklungssystem (Mac) als auch auf dem Produktivsystem
(Debian) sind identische Installationen vorhanden. Die Gems sind von
mir aber der Vorsicht halber “frozen” worden und stecken somit auch
fest im Subversion und werden per capistrano mit jedem Update neu
deployed.

Jetzt möchte ich eine neue App in Angriff nehmen, dabei aber natürlich
auf den aktuellen Zweig von Rails. Da ich nach der Fertigstellung auch
auf den selben Server deployen möchte, auf dem die “alte” App läuft,
habe ich jetzt ein wenig dll hell Ängste bezüglich des gem
repositories. Vorallem weil auf meinem DevSystem durch eines der
letzten Leopardupdates auch Rails auf 1.2.5 hochgehoben wurde, und
meine App nur noch deswegen funktioniert, weil die alte Version dort
frozen im vendor Dir liegt.

Wenn ich per gem das aktuelle Rails Release in das Main Rep meines Dev
Systems installiere, dann werden ja auch actionpack,-mailer,-
webservice usw. geupdated. Renne ich dann in Probleme mit meiner alten
Applikation? Sollte ich lieber ein lokales gem Repository für die neue
App anlegen wie hier beschrieben:
http://wiki.rubyonrails.org/rails/pages/HowToUseMultipleGemRepositories
? Oder kann ich bedenkenlos auf die aktuelle Rails Version hoch?

Wenn ich jetzt per gem update --system alle gems update wird auch
Mongrel und Capistrano geupdated. Kann ich dann meine alte App noch
sauber weiter deployen?
Was passiert, wenn ich dann nach einem Update für die alte App die ja
noch auf 1.1.6 rennt, dann ein neues gem brauche?
Kann ich bei der neuen App dann auch einfach die aktuelle Rails
Version freezen und sozusagen “lokal” mit deployen?
Gibts Erfahrungswerte bezüglich der Kombi: Apache-Mongrel-Capistrano
und einer Kombination von Apps mit verschiedenen Rails Versionen
ähnlich meiner Problematik?

Ich bin hier ein wenig konfus. Kann mir jemand einen Tip geben, oder
eine weitere Quelle zum Lesen?

Gruß und Dank

Jan R.
jan [a t] roesner [d o t] it


#2

Servus,

Am 16. Dezember 2008 18:50 schrieb Jan R. removed_email_address@domain.invalid:

Oder kann ich bedenkenlos auf die aktuelle Rails Version hoch?

Also wenn ich das richtig sehe, bist du mit frozen gems eigentlich
vollkommen aus dem Schneider. Es werden ja nur die Gems aus deinem SVN
bzw. aus dem RAILS_ROOT verwendet.

Wenn ich jetzt per gem update --system alle gems update wird auch Mongrel
und Capistrano geupdated. Kann ich dann meine alte App noch sauber weiter
deployen?

Da kannst übrigens auch unterschiedliche gem Versionen gleichzeitig
installiert haben.

Alle Angaben natürlich ohne Gewährt :wink: Wenns also Mission Critical
ist, würde ich es auf jeden Fall auf einer VM ausprobieren.

Gruß
Johannes