Estoy investigando una aplicación de rieles: el servidor de prod tiene dos versiones de una gema específica instalada, ¿cómo puedo saber qué versión está usando la aplicación de prod?
ruby-on-rails
rubygems
Steve Brewer
fuente
fuente

Respuestas:
En Rails 3 y Rails 4, use
bundle showEn Rails 2,
rake gemsimprimirá qué gemas, dependencias y versiones están instaladas, congeladas, etc.fuente
bundle show | grep gem_name, haga un ejemplo de brújula:bundle show | grep compassSi usa bundler, puede obtener la versión de
fuente
bundle info [gemname]lugar.Me tomó más de lo esperado encontrar y clasificar esta información, así que quería publicarla aquí en un lugar para que otros la vieran. También quería aclarar un poco esto para Rails 3:
script / about ha sido reemplazado por
rake aboutLos detalles están aquí . Si está interesado, puede encontrar una lista de todos los cambios en la línea de comandos para Rails 3 aquí .rake gemsno funciona en Rails 3. En su lugar, debería utilizarbundle showComo ejemplo, puede guardar todas las versiones de sus gemas en un archivo para verlas con:
gem list > all_gems.txty puede ver qué versiones usa su aplicación Rails con:
bundle show > project_gems.txtUsando un editor como Vim, puede usar vimdiff fácilmente para ver los cambios
fuente
Probablemente haya una forma más directa de averiguarlo, pero si carga una consola y requiere una versión específica como esta:
Te dirá qué versión ya está activada:
fuente
En la terminal
o
Por ejemplo:
fuente
También hay una lista en
Gemfile.lock, ubicada en el directorio raíz de su aplicación.Por eso dejo
Gemfile.lockfuera de mi.gitignore. Esto me ha salvado más de una vez cuando olvidé especificar la versión de la gemaGemFiley una gema se actualizó con cambios importantes.fuente
Intente usar
script/about. Tuconfig/environment.rbtambién tiene información al respecto.En su
config/environment.rb, puede especificar qué versión de unagemaplicación en particular debe usar. Sin embargo, si tiene varias versiones de ungeminstalado en su máquina y no especifica la versión, la aplicación utilizará la última versión de esa gema.fuente
Mostrará todas las gemas coincidentes, por ejemplo, si alguien lo hace
Entonces la salida será la siguiente
fuente
script/aboutle dirá qué versiones de las gemas principales de Rails y Rack está utilizando, pero nada más. Idealmente, si miras hacia adentroconfig/environment.rb, debería haber una sección que se vea así:Con suerte, el autor de la aplicación habrá incluido allí todas las gemas y versiones necesarias. Sin embargo, las versiones son opcionales en este archivo y, en última instancia, nada impide que un desarrollador sin experiencia simplemente coloque un
require 'rubygems'; require 'some_random_thing'en la parte superior de cualquier archivo.Si ve que se requiere una gema, pero no se especifica una versión, puede escribir
gem listpara ver todas las versiones de todas las gemas en el sistema. De forma predeterminada, utilizará el último disponible.fuente
Probablemente sea lo que puedas usar:
fuente
gem which gem_namepaquete show gemname Es decir, para diseñar tienes que escribir como
e imprimirá la versión actual de la gema.
fuente
prueba este para gema local:
Si usa paquete:
fuente
En la versión más reciente, usado
bundle show gem_namefuente
Si usa bundler, puede obtener la versión usando:
fuente
En Gemfile, debería haber la respuesta:
fuente
Gemfileno siempre declarará explícitamente un número de versión.