Réponses:
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)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- la :tag => ''
partie
eh bien, cela dépend du projet en question. Certains projets ont un fichier * .gemspec dans leur répertoire racine. Dans ce cas, il serait
gem build GEMNAME.gemspec
gem install gemname-version.gem
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.
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.
gem install specific_install
gem specific_install -l <url to a github gem>
par exemple
gem specific_install https://github.com/githubsvnclone/rdoc.git
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:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
Pour plus d'informations, voir https://bundler.io/v2.0/guides/git.html
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 exemple www-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:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Si vous obtenez vos gemmes à partir d'un référentiel GitHub public, vous pouvez utiliser le raccourci
gem 'nokogiri', github: 'tenderlove/nokogiri'
Vous pouvez aussi faire gem install username-projectname -s http://gems.github.com
Dans votre Gemfile, ajoutez ce qui suit:
gem 'example', :git => 'git://github.com/example.git'
Vous pouvez également ajouter des options ref, branch et tag,
Par exemple, si vous souhaitez télécharger à partir d'une branche particulière:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
Exécutez ensuite:
bundle install
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.
Sur une nouvelle machine Linux, vous devez également installer git
. Bundle l'utilise dans les coulisses.
require "bundler" Bundler.setup(:default)
Voir les documents du bundler pour plus de détails