Table of Contents
Créer un référentiel RubyGem
Serveurs Gem locaux
Utilisation du serveur par défaut de RubyGems
RubyGems est fourni avec une commande - judicieusement nommée gem server
- utilisée pour servir les gemmes ruby installées.
gem server Server started at http://0.0.0.0:8808 ...
La commande gem server
démarre un serveur sur un port (le port par défaut est 8808 - peut être spécifié avec -p ou –port) et servira, par défaut, tous les paquets installés sur le système local. On peut taper http://localhost:8808 dans un navigateur pour voir un index de tous les paquets installés sur le système.
Pour utiliser le serveur gem local comme source d'installation des gemmes, il faut s'assurer que les fichiers cache des gemmes existent sur le système exécutant le serveur. On peut également spécifier un ou plusieurs répertoires pour rechercher les gemmes installées en passant les options -d ou –dir à la commande gem server.
gem server -d /path/to/your/gems
Pour rendre les nouveaux packages disponibles, ajouter simplement les gemmes souhaitées dans le répertoire de gemmes spécifié.
Serveur gemstash
Pour commencer, installer gemstash:
gem install gemstash
Une fois installé, démarrer le serveur Gemstash avec la commande suivante :
gemstash start
Par défaut, le serveur fonctionne sur le port 9292.
Pour l'utiliser comme cache, on peut indiquer à Bundler d'utiliser Gemstash pour rechercher des gemmes sur RubyGems.org :
bundle config mirror.https://rubygems.org http://localhost:9292
\\Avec cette configuration, toutes les gemmes récupérées sur RubyGems.org via bundler sont mises en cache par Gemstash.
\\On peut également envoyer ses propres gemmes et utiliser le serveur Gemstash comme source de gemmes privée.
Exécution de Gem in a Box
Pour un serveur avec plus de fonctionnalités, y compris la possibilité de pousser des gemmes, on peut utiliser le projet Gem in a Box.
Pour commencer, installer geminabox:
gem install geminabox
Créer un répertoire de données pour stocker les gemmes :
mkdir data
Inclure les éléments suivants dans un fichier config.ru :
require "rubygems" require "geminabox" Geminabox.data = "./data" run Geminabox::Server
Et exécuter le serveur :
rackup [2011-05-19 12:09:40] INFO WEBrick 1.3.1 [2011-05-19 12:09:40] INFO ruby 1.9.2 (2011-02-18) [x86_64-darwin10.5.0] [2011-05-19 12:09:40] INFO WEBrick::HTTPServer#start: pid=60941 port=9292
On peut maintenant envoyer des gemmes à l'aide de la commande gem inabox
. La première fois que l'on effectue cette opération, il faut indiquer l'emplacement du serveur gem.
gem build secretgem.gemspec RubyGem a été créé avec succès Nom : secretgem Version : 0.0.1 Fichier : secretgem-0.0.1.gem gem inabox ./secretgem-0.0.1.gem Entrez l'URL racine de votre instance geminabox personnelle. (Par exemple, http://gems/) Hôte : http://localhost:9292 Transfert de secretgem-0.0.1.gem vers http://localhost:9292/...
Une interface Web est également disponible sur http://localhost:9292.
Utilisation des gemmes du serveur local
Que l'on utilise Gemstash, Gem in a Box ou un autre serveur de gemmes, on peut configurer RubyGems pour utiliser la source locale ou interne avec d'autres sources telles que http://rubygems.org.
Utiliser la commande gem sources
pour ajouter le serveur de gemmes aux sources de gemmes à l'échelle du système. L'URL suivante est l'URL par défaut pour exécuter Gem in a Box via rackup:
gem sources --add http://localhost:9292
Installer ensuite les gemmes comme d'habitude :
gem install secretgem Secretgem-0.0.1 installé avec succès 1 gem installé
Avec Bundler, on peut spécifier ce serveur comme source de gemmes dans le fichier Gemfile
:
source "http://localhost:9292" gem "secretgem"
bundle Utilisation de secretgem (0.0.1) Utilisation de bundler (1.0.13) Votre bundle est terminé ! Utiliser `bundle show [gemname]` pour voir où un gem groupé est installé.