2011-09-01 15 views
6

A veces quiero ejecutar la actualización del paquete pero solo para ver qué gemas necesitan actualizarse. No necesariamente quiero tratar con los problemas asociados con la actualización de todos ellos, pero quiero hacer una comprobación rápida para ver cuál es el estado del arte.¿Cómo puede obtener una vista previa de las actualizaciones que realizará una "Actualización de paquete"?

¿Hay alguna manera de hacer que Bundler enumere las gemas que necesitan actualizarse juntas (idealmente) con la versión que estoy ejecutando actualmente y cuál es la última y más grande?

Respuesta

3

He intentado esto:

> gem install bundle_outdated 
> bundle-outdated 
Finding outdated gems.. 

Newer versions found for: 
    rails (3.1.0 > 3.0.0) 
    haml (3.1.2 > 3.0.0) 
    rspec-rails (2.6.1 > 2.0.1) 

Lock bundle to these versions by putting the following in your Gemfile: 
    gem 'rails', '3.1.0' 
    gem 'haml', '3.1.2' 
    gem 'rspec-rails', '2.6.1' 

You may try to update non-specific dependencies via: 
    $ bundle update haml rspec-rails 

Handwaving specifications: 
    haml: >= 3.0.0 
    rspec-rails: >= 2.0.1 

Otra alternativa:

> gem install gem-outdated 
> gem outdated 
+0

Muy útil - el paquete anticuado parece lo que estoy buscando, ty –

+0

Tenga mucho cuidado antes de hacer lo que sugiere esta respuesta. En primer lugar; el paquete obsoleto no considera los requisitos de dependencia de la versión. Lo que significa que mostrará todo como nuevo incluso si tienes una versión específica para tu gema en tu Gemfile. En segundo lugar; El comando ** bundle update gemname ** actualiza todas las dependencias de la gema. Lo que significa que puede terminar con una nueva versión de rieles si "gemname" tiene dependencia de rieles. (lo cual hace haml, que se da en el ejemplo). Por favor, mira mi respuesta a continuación. –

0

No hay forma de hacerlo directamente con bundler, pero siempre que esté usando un VCS, siempre puede revertir el archivo Gemfile.lock para revertir los cambios realizados por la actualización, o diferir el archivo para ver qué cambios ha sido hecho. Ver este similar question

+0

gracias, lo resolví utilizando la gema obsoleta –

14

Ahora hay una manera de hacerlo directamente con bundler. No necesita instalar gemas adicionales.

bundle outdated 

volverá algo como esto

Outdated gems included in the bundle: 
    * acts-as-taggable-on (2.4.1 > 2.3.3) 
    * addressable (2.3.4 > 2.3.3) 
    * arel (4.0.0 > 3.0.2) 
    * better_errors (0.8.0 > 0.7.2) 
    * builder (3.2.0 > 3.0.4) 
    * capybara (2.1.0 > 2.0.3) 
    * chunky_png (1.2.8 > 1.2.7) 
    * codemirror-rails (3.12 > 3.02) 
    * coffee-rails (4.0.0 > 3.2.2) 
    ..... 
5

Dado que las búsquedas de Google golpear a esta página y las respuestas proporcionadas tener algunos puntos que necesita atención, voy a añadir otra respuesta.

Si desea ver qué actualizaciones son liberados por sus gemas, teniendo "requisitos versión de dependencia en su Gemfile" en cuenta, utilice:

bundle outdated --strict 

Si no quiere tomar la versión de dependencia en cuenta, simplemente use bundle outdated como se especifica en otras respuestas.

En segundo lugar, si quiere actualizar una joya específica, utilice:

bundle update --source gemname 

bundle update gemname actualiza la joya y todas sus dependencias, que pueden dejarlo en un lío (incluso los raíles se actualizan mediante el uso de bundle update haml).

Cuestiones relacionadas