que lock instalar ruby bundler gemfile

lock - ruby bundle install windows



Ruby Bundler mĂșltiples fuentes en Gemfile (4)

Necesito asegurarme de que algunas de mis gemas se instalen desde nuestro propio repositorio de gemas en lugar de rubygems, mientras que el resto se instala desde rubygems. ¿Puedo configurar esto en el Gemfile sin preocuparme por un conflicto de nombres con una gema con el mismo nombre en Rubygems? ¿Cómo puedo determinar de dónde se descarga la gema?

por ejemplo, Gemfile:

source :rubygems gem ''gemfromrubygems1'' gem ''gemfromrubygems2'' source "http://our.own.gem.repo.com/the/path/to/it" gem ''gemfromourrepo''


Bundler 1.7 tiene una nueva característica que le permite seleccionar la fuente de gemas específicas al anidarlas en un bloque:

source "https://rubygems.org" gem ''gemfromrubygems1'' gem ''gemfromrubygems2'' source "http://our.own.gem.repo.com/the/path/to/it" do gem ''gemfromourrepo'' end

o especificándolo como una opción:

source "https://rubygems.org" gem ''gemfromrubygems1'' gem ''gemfromrubygems2'' gem ''gemfromourrepo'', source: "http://our.own.gem.repo.com/the/path/to/it"

Ver http://bundler.io/v1.7/gemfile.html para más detalles.


De acuerdo con la sección Prioridad de fuente en la página de manual de Gemfile, las fuentes se buscan desde la última entrada hasta la primera ingresada.

De acuerdo con lo que dijo, parece que siempre quiere preferir su joya a rubygems.org . Siempre que no necesite variar su preferencia (es decir, algunos dups de rubygems.org y algunos dups de su repositorio privado), su problema se resuelve simplemente con el siguiente Gemfile :

source ''https://rubygems.org'' source ''http://our.own.gem.repo.com/the/path/to/it'' gem ''gemfromrubygems1'' gem ''gemfromrubygems2'' gem ''gemfromourrepo''



La única forma que encontré es como un horrible hack.

Bundler buscará la mejor versión de su gema a partir de la última fuente que se encuentra en la lista y luego buscará todas las fuentes enumeradas anteriormente. No importa dónde las líneas de origen son relativas a las líneas de gema, solo entre sí.

Traté de hacer que funcionara usando: git y: path, pero ninguno de ellos funciona para los servidores de gems. Eso deja a juego la mejor versión.

Si configuras la versión de tu gema en algo como 2.mine.1 y la envías a tu servidor, puedes restringir la versión en tu Gemfile.

source :rubygems source ''http://myrepo'' gem ''gemfromourrepo'', ''~> 2.ourrepo''

Entonces la mejor versión coincidente debería ser una de su servidor. Existe la posibilidad de que alguien pueda empujar su propia gema del mismo nombre con 2.ourrepo.2 a rubygems, pero eso es poco probable si es único.