Ich möchte ein Gem herunterladen, ohne alle erforderlichen Gems für ein bestimmtes Gem zu installieren.
Insbesondere für das Rails 3-Gem. Es hat viele Abhängigkeiten und ich muss es auf einem geschlossenen Server installieren, auf dem derzeit keine Ruby-/Rake-/Rails-Software läuft.
Jeder Hinweis ist willkommen, da das Durchklicken von rubygems.org mühsam ist.
okay, lassen Sie mich das ein wenig klarstellen. Ich möchte, dass Folgendes funktioniert:
Gem-Installation von Rails --nur Download
das würde meine Probleme lösen, da ich dann die resultierenden Edelsteine auf eine CD brennen und auf meinen Server verschieben könnte, der keinen Internetzugang hat.
Antwort1
Um ein einzelnes Gem herunterzuladen, verwenden Sie (am Beispiel des Gems „Loudmouth“):
gem fetch loudmouth
Fetching: loudmouth-0.2.4.gem (100%)
Downloaded loudmouth-0.2.4
Um alle Gems herunterzuladen, von denen Ihre Rails 3-App abhängt, führen Sie Folgendes aus:
bundle package
Dadurch werden alle Gems (und ihre Abhängigkeiten) heruntergeladen und in Vendor/Cache platziert (ohne sie zu installieren).
Sie können dann alle Gems im Vendor/Cache auf eine CD brennen und diese physisch auf den anderen Server bringen, ohne Internetzugang zu haben.
Antwort2
Nun, ich beantworte meine Frage nur ungern selbst, aber ich denke, das hier ist die wahrscheinlichste Lösung für meine Frage.
- find network enabled machine
- install rails and all needed gems using RubyGems.
- tar/zip /usr/lib[64]/ruby/gem/1.9.1/cache/*.gem
- transport tar file to non-networked computer.
Der Speicherort dieser zwischengespeicherten Gem-Dateien ist sehr nützlich. Wenn ich zahlreiche Gems auf meinem vernetzten Rechner hätte und nicht alle Gems transportieren wollte, hätte ich verwendet
> bundle list
um die benötigten anwendungsspezifischen Gems anzuzeigen.
-daniel
Antwort3
Ich würde einen lokalen RubyGems-Server mit allen für die Anwendung erforderlichen Gems erstellen, einschließlich Rails und seinen Abhängigkeiten.
Grundlegende Dokumentation hier:
In diesem Blogbeitrag wird gezeigt, wie Sie einen internen Server einrichten, an den Sie Gems zur automatischen Indizierung senden können:
Antwort4
Leider kommen Sie um das Abhängigkeitsproblem nicht herum. Sie werden aus einem bestimmten Grund benötigt. Der Versuch, Rails ohne die erforderlichen Abhängigkeiten zu installieren, führt zu zahlreichen Problemen, falls Rails überhaupt ausgeführt wird.
Sie haben nicht genau angegeben, was Sie mit geschlossen meinen. Wenn Sie geschlossen meinen, dass Sie keine systemweite Software installieren können, schauen Sie sich Folgendes an:RVM, eine Software, mit der Sie eine in sich geschlossene Ruby-Umgebung erstellen können. Möglicherweise können Sie dies auch auf einem anderen Server einrichten und verschieben, wenn der Server keine Verbindung zum Internet hat. Sehen Sie sich das an und finden Sie heraus, ob es Ihnen hilft.