23 Stimmen

Wie baue ich einen Rubygems-Spiegelserver?

Mein Arbeitsplatz hat uns den Internetzugang verboten, sodass wir keine Verbindung zu rubygems.org herstellen können, um Gems remote zu installieren.

Zu Hause kann ich auf rubygems.org zugreifen. Gibt es einen einfachen Weg, um mir das Herunterladen und Aktualisieren der benötigten Gems zu ermöglichen, dann diese (über eine portable Festplatte oder ähnliches) an einen lokalen Gems-Spiegelserver an meinem Arbeitsplatz zu synchronisieren, damit andere Kollegen die Gems von diesem Spiegelserver installieren können?

36voto

panupan Punkte 1202

Sie können rubygems-mirror verwenden, um die Gems zu spiegeln und Gem in a box, um sie zu hosten.

Installieren Sie rubygems-mirror:

$ gem install rubygems-mirror

Bearbeiten Sie ~/.gem/.mirrorrc:

---
- from: http://rubygems.org
  to: ~/.gem/mirror

Erstellen Sie das Spiegelverzeichnis:

$ mkdir ~/.gem/mirror

Starten Sie den Spiegelvorgang:

$ gem mirror

Nach Abschluss des Spiegelvorganges bearbeiten Sie ~/.gem/mirror/config.ru:

require "rubygems"
require "geminabox"

Geminabox.data = "./"
run Geminabox

Installieren Sie Gem in a box:

$ gem install geminabox

Starten Sie den Gem Server:

$ cd ~/.gem/mirror
$ rackup

Bearbeiten Sie das Gemfile Ihrer Anwendung, um Ihren Gem Server zu verwenden:

source "http://your.servers.ip:9292"
.

Oder fügen Sie es als lokalen Spiegel für rubygems.org hinzu, damit Sie Ihr Gemfile nicht ändern müssen:

$ bundle config mirror.https://rubygems.org https://localgems.lan
$ bundle config mirror.http://rubygems.org http://localgems.lan

Aktualisieren Sie von Zeit zu Zeit Ihren Spiegel:

$ gem generate_index --directory ~/.gem/mirror

0voto

Pushkar Punkte 541

Ich halte es für nicht sehr zuverlässig, dass 'gem mirror' dort weitermacht, wo es aufgehört hat. Ich bin auf folgendes Problem gestoßen https://github.com/rubygems/rubygems-mirror/issues/22 und warte darauf, von den Gem-Besitzern zurückzuhören.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X