La meilleure façon d'installer plusieurs pierres précieuses sur un ordinateur?

StackOverflow https://stackoverflow.com/questions/1129208

  •  13-09-2019
  •  | 
  •  

Question

Y at-il un moyen facile, lors de l'exécution d'un script Ruby, pour l'obtenir pour installer automatiquement les gemmes nécessaires pour le script?

Par exemple, tenez compte des déclarations nécessitent au sommet d'un script Ruby:

require 'net/http'
require 'fileutils'
require 'archive/zip'

Maintenant, je sais (comme un être humain et programmeur) que pour ce script à exécuter sur un PC donné avec Ruby, le « gem install archive zip » commande doit être exécuté d'abord, avant que le script fonctionne. Mais si ce script doit fonctionner sur des dizaines de PC, il est tout ce qui peut me sauver d'avoir à assurer que toutes les pierres précieuses sont de dépendances installées en premier?

En outre, s'il y a plusieurs gemmes nécessaires?

Était-ce utile?

La solution

Je ne sais pas si cela est exactement ce que vous êtes après, mais quand j'ai un serveur mis en place ce que je veux je sauvegarder une liste de mes pierres précieuses pour un endroit sûr ...

gem list > my_gems.txt

Si je dois reconstruire la boîte ou construire une autre machine que j'utiliser ce script pour installer les pierres précieuses ...

bulk_gems.rb
#! /usr/local/bin/ruby

STDIN.readlines.each do |l|
 m = l.match /^(\S+) \((.*)\)/
 unless m.nil?
   gem_name, versions = m[1], m[2].split(',')
   versions.each do |v|
     system "gem install #{gem_name} --version #{v} --ignore-dependencies"
   end
 end
end

more my_gems.txt | bulk_gems.rb

Autres conseils

En utilisant gem unpack vous pouvez décompresser les pierres précieuses dans un répertoire. De là, vous pouvez les inclure dans votre script. Par exemple, choisissant au hasard le morse gemme (un bijou qui code / décode le code morse), disons que je l'utilise gem unpack morse pour le mettre dans un répertoire / pierres précieuses /. Il décompresse dans le répertoire morse 0.0.2, puisque c'est la version.

$LOAD_PATH << './gems/morse-0.0.2/lib'
require 'morse'
# The gem is included, and Morse is now defined.

Chaussures a une façon vraiment lisse de le faire. Voir cette de par _why.

Vous pourriez le port une partie de ce à rubis standard (sans l'interface utilisateur de fantaisie)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top