¿Cómo puedo especificar local.¿archivos de gemas en mi Gemfile?
Tengo un par de archivos gem que instalo a través de gem install xx.gem
. ¿Puedo decirle a Bundler que los use? ¿O tengo que especificar la ruta de origen?
7 answers
Por defecto Bundler comprobará su sistema primero y si no puede encontrar una gema utilizará las fuentes especificadas en su Gemfile.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-12 10:56:34
Esto no es estrictamente una respuesta a su pregunta sobre la instalación de paquetes .gem
, pero puede especificar todo tipo de ubicaciones gema por gema editando su Gemfile.
Al especificar un atributo :path
se instalará la gema desde esa ruta en su máquina local.
gem "foreman", :path => "/Users/pje/my_foreman_fork"
Alternativamente, al especificar un atributo :git
se instalará la gema desde un repositorio git remoto.
gem "foreman", :git => "git://github.com/pje/foreman.git"
# ...or at a specific SHA-1 ref
gem "foreman", :git => "git://github.com/pje/foreman.git", :ref => "bf648a070c"
# ...or branch
gem "foreman", :git => "git://github.com/pje/foreman.git", :branch => "jruby"
# ...or tag
gem "foreman", :git => "git://github.com/pje/foreman.git", :tag => "v0.45.0"
(Como @JHurrah mencionado en su comentario.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:18:00
Parece que Bundler no puede usar.archivos de gemas listos para usar. Apuntando la ruta: a un directorio que contiene .gem files no funciona. Algunas personas sugirieron configurar un servidor de gemas local (geminabox, stickler) para ese propósito.
Sin embargo, lo que me pareció mucho más simple es usar una gema local "servidor" del sistema de archivos: Solo pon tu .archivos de gema en un directorio local, luego use "gem generate_index" para convertirlo en un repositorio de gema
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
Finalmente punto bundler a esta ubicación mediante la adición de la siguiendo la línea a su Gemfile
source "file://path/to/repo"
Si actualiza las gemas en el repositorio, asegúrese de regenerar el índice.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-12 14:56:01
Desempaquetaría su gema en la carpeta proveedor de la aplicación
gem unpack your.gem --target /path_to_app/vendor/gems/
Luego agregue la ruta en el Gemfile para vincular la gema desempaquetada.
gem 'your', '2.0.1', :path => 'vendor/gems/your'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-03 10:45:37
Puedes forzar a bundler a usar las gemas que despliegues usando "bundle package"y" bundle install local local "
En su máquina de desarrollo:
bundle install
(Instala las gemas necesarias y crea el Gemfile.lock)
bundle package
(Almacena en caché las gemas en vendor / cache)
En el servidor:
bundle install --local
(local local significa "usar las gemas del proveedor/caché")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-02 10:15:46
Me pareció más fácil ejecutar mi propio servidor de gemas usando geminabox
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-30 06:27:45
Agregar .gem
a vendor/cache
parece funcionar. No se requieren opciones en Gemfile
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-17 17:17:27