J'ai un tas de scripts ruby dans un dossier qui est ajouté à $PATH
et je pense que certains d'entre eux pourraient être utiles aux autres. Donc je veux les distribuer et le seul 'bon' moyen que je connaisse est rubygems (gem contenant uniquement binaire), il a un avantage très utile de versioning, mais aussi un inconvénient de temps d'initialisation (parfois il faut quelques secondes avant que le script commence courir). Existe-il des alternatives?Un moyen facile de distribuer le script ruby
Répondre
La gemme est assez bonne pour cela. J'utilise gem à cette fin car il est très pratique d'installer et de mettre à jour.
Les gemmes sont construites pour cela. Je ne suis pas sûr de ce que vous pensez d'un gem, mais RubyGems est un référentiel comme PEAR pour PHP, aptitude pour Ubuntu, ou CPAN pour perl, sauf qu'ils contiennent des bibliothèques ruby.
Il n'y a aucun surcoût supplémentaire ou "temps d'initialisation" ajouté à vos bibliothèques ruby en les rendant gems. RubyGems installe simplement votre bibliothèque - il ne fait rien d'autre. Les pierres précieuses sont bien pour ce genre de script Ruby
Il ya des rubygems nécessitant des frais généraux et la recherche de gem contenant le script – tig
@tig avez-vous comparé ceci pour déterminer si c'est un problème réel? Le temps est presque définitivement négligeable. Si c'est le cas, vous pouvez simplement ignorer les rubygems et demander manuellement le fichier. De cette façon, vous obtenez la facilité de distribution avec RG mais vous n'avez pas la surcharge de la recherche de chemin. – ryeguy
Je ne l'ai pas référencé, mais j'ai remarqué sa présence (c'est pourquoi je sais comment fonctionne la bin de rubygems :), les frais généraux ne sont pas constants dans le temps, la première est lente, d'autres sont rapides). Que voulez-vous dire en sautant des rubygems? Je veux distribuer un script exécutable comme 'rake' ou' rails'. – tig
Pour générer rapidement une nouvelle gemme, essayez bundle gem
.
Pour distribuer rapidement des gems sans utiliser rubygems.org, et d'une manière qui pourrait fonctionner pour un déploiement privé, consultez l'idée de microgems. Si vous ne pensez toujours pas avoir besoin d'envelopper ces gemmes, vous pouvez simplement ajouter le bit exécutable à vos scripts, ajouter des lignes shebang pour ruby et supprimer l'extension .rb
. Ensuite, partagez vos fichiers de script avec ceux qui les veulent.
- 1. Comment distribuer le logiciel ruby?
- 2. Erlang - Interleave le moyen facile
- 3. Un moyen facile de tester l'application réseau
- 4. Un moyen facile de simuler Viewstate invalide?
- 5. Un moyen facile de charger l'application asp.net
- 6. Le moyen le plus facile d'apprendre l'unité
- 7. ASP.NET - Un moyen facile d'échanger un booléen?
- 8. Un moyen facile d'écraser le css de base jQuery-UI?
- 9. Un moyen facile d'archiver des objets liés
- 10. Comment distribuer le logiciel ruby dans les environnements debian
- 11. Un moyen facile d'inspecter le fichier BCP .dat?
- 12. Un moyen facile d'aplatir le fichier XML avec LINQ
- 13. Un moyen facile de changer un nom pour un modèle?
- 14. Comment distribuer un script en utilisant gdata-python-client?
- 15. Y at-il un moyen facile de basculer "do/end" et "{}" dans ruby dans Vim?
- 16. Un moyen facile de démarrer NHibernate dans un projet WCF
- 17. Un moyen facile de déclencher un bruit dans iPhone OS?
- 18. Un moyen facile d'obtenir un fichier de test dans JUnit
- 19. Un moyen facile de pdf un rapport Web
- 20. Existe-t-il un moyen facile de personnaliser un QProgressBar?
- 21. Existe-t-il un moyen facile de trier un CObList?
- 22. Un moyen facile de déployer de nouveaux services WCF
- 23. Un moyen facile de définir CurrentCulture pour l'ensemble de l'application?
- 24. Un moyen facile de retrive timestamp de SQL Server db
- 25. Un moyen facile de changer la valeur de bolean
- 26. Un moyen facile de recherche de fichiers XML multiples
- 27. moyen le plus facile de centrer une image dans Silverlight?
- 28. Quel est le moyen facile de tester 304 réponses?
- 29. Existe-t-il un moyen facile d'installer la bibliothèque Lisp comme ruby gem (Ruby) ou easy_install (Python)?
- 30. Un moyen facile de rechercher une chaîne pour les chaînes
Qu'entendez-vous par "temps d'initialisation"? – Jeremy
@Jeremy: lance 'cat $ (qui rake)' - rubygems est initialisé et gem contenant binary est trouvé avant l'exécution du script. – tig