Je voudrais installer gem à partir de la dernière source GitHub.
Comment puis-je faire cela?
Dans le cas où vous utilisez bundler, vous devez ajouter quelque chose comme ça à votre Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
Et dans le cas où il y a un .gemspec
fichier, il devrait pouvoir récupérer et installer la gemme lors de l'exécution bundle install
.
UPD. Comme indiqué dans les commentaires, pour que Bundler fonctionne correctement, vous devez également ajouter les éléments suivants config.ru
:
require "bundler"
Bundler.setup(:default)
require "bundler" Bundler.setup(:default)
Voir les documents du bundler pour plus de détailsgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.htmlgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- la:tag => ''
partieeh bien, cela dépend du projet en question. Certains projets ont un fichier * .gemspec dans leur répertoire racine. Dans ce cas, il serait
D'autres projets ont une tâche de rake, appelée "gem" ou "build" ou quelque chose comme ça, dans ce cas, vous devez invoquer "rake", mais cela dépend du projet.
Dans les deux cas, vous devez télécharger la source.
la source
gemname-version.gem
fichier est créé lors de l'appelgem build
gem install gemname-version.gem
commande installe-t-elle le git gem localement? Je ne trouve nulle part dans ma machine locale une gemme de moteur installée de cette façon. Où bundler le cache-t-il?gem install gemname-version.gem
ligne devrait êtregem install --local gemname-version.gem
gem which gemname
devrait vous dire où se trouve un bijou spécifique, cela ne fonctionne-t-il pas pour vous?Essayez la gemme specific_install qui vous permet d'installer une gemme depuis son dépôt github (comme 'edge'), ou depuis une URL arbitraire. Très utile pour forger des gemmes et les pirater sur plusieurs machines et autres.
par exemple
la source
specific_install
gemme?ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Cela semble très cool, mais je ne vais pas approfondir les choses. Je voulais juste signaler que cela n'a pas fonctionné pour moi au cas où quelqu'un d'autre serait sur le point de lui faire un tourbillon basé sur la recommandation de SO.Bundler vous permet d'utiliser des gemmes directement à partir des référentiels git. Dans votre Gemfile:
Pour plus d'informations, voir https://bundler.io/v2.0/guides/git.html
la source
bundle
, ces dépendances git-gem ne seront pas installées globalement mais dans le répertoire personnel de l'utilisateur actuel. Passenger exécutera ruby en tant qu'utilisateur de votre serveur web (par exemplewww-data
) qui n'a pas accès à ce répertoire et donc ce "git-gem" ne sera pas chargé. Vous obtiendrez une erreur... is not yet checked out. Run bundle install first
.OBSOLETE (voir commentaires)
Si le projet provient de github et qu'il est contenu dans la liste sur http://gems.github.com/list.html , vous pouvez simplement ajouter le dépôt github aux sources de gems pour l'installer:
la source
Si vous obtenez vos gemmes à partir d'un référentiel GitHub public, vous pouvez utiliser le raccourci
la source
Vous pouvez aussi faire
gem install username-projectname -s http://gems.github.com
la source
Dans votre Gemfile, ajoutez ce qui suit:
Vous pouvez également ajouter des options ref, branch et tag,
Par exemple, si vous souhaitez télécharger à partir d'une branche particulière:
Exécutez ensuite:
la source
Si vous installez à l'aide de bundler comme suggéré par gryzzly et que la gemme crée un binaire, assurez-vous de l'exécuter avec
bundle exec mygembinary
car la gemme est stockée dans un répertoire bundler qui n'est pas visible sur le chemin normal de la gemme.la source
Sur une nouvelle machine Linux, vous devez également installer
git
. Bundle l'utilise dans les coulisses.la source