Bundler n'installe pas à partir du dépôt privé Stash, mais signale que c'est le cas
-
21-12-2019 - |
Question
Mon fichier bundle ne semble pas extraire correctement une gemme d'un référentiel privé.
Dans mon Gemfile, j'ai :
group :internal do
gem 'private', git: 'ssh://git@internalserver.org:<port>/gems/private.git'
end
Cela s'exécute et la journalisation détaillée produit :
Updating ssh://git@internalserver.org:<port>/gems/private.git
Cloning into '/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/private-ddec73caf50f'...
done.
Quand je navigue vers /Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/
, je vois le référentiel correct cloné correctement, avec un gemspec avec le nom correct.
Lorsque le bundler a fini de fonctionner, gem list
ne montre pas le private
gemme.Cela produit une erreur lorsque j'essaie de l'exiger.
J'ai essayé de supprimer le fichier Gemfile.lock dans le référentiel et de le réexécuter, et cela n'a pas fonctionné.Toutes les gemmes publiques du Gemfile s'installent correctement.
Numéros de version/logiciel pertinents :
- Regroupeur version 1.3.5
- RVM 1.23.14
- rubis 2.0.0p247
- Cachette Atlassan
La solution
Les gemmes Git sont une extension spécifique au Bundler de Rubygems.Le gem
la commande ne les connaît pas, ils ne sont donc pas répertoriés par gem list
.Tu peux courir bundle show
pour voir la liste des gemmes reconnues par Bundler, qui inclura les gemmes git.
Pour avoir besoin de la gemme, vous devez vous assurer que le chemin de chargement est correctement configuré par Bundler.Il existe trois façons de procéder :
- Appel
require 'bundler/setup'
dans votre application.Ceci est typique des applications Rails. Plus surBundler.setup
- Appel
bundle exec <command>
pour exécuter la commande.Ceci est plus courant lors de l'exécution de commandes à partir d'une gemme, telle querake
ourspec
. Plus surbundle exec
- Créer des binstubs pour les commandes que vous exécutez fréquemment.
Voir http://bundler.io/v1.5/git.html pour plus d'informations sur les gemmes git.