Sí, cuando lo haga gem install, buscará primero el directorio actual, por lo que si su archivo .gem está allí, lo recogerá. Lo encontré en la referencia de gemas , que también puede encontrar útil:
gem install instalará la gema nombrada. Intentará una instalación local (es decir, un archivo .gem en el directorio actual), y si eso falla, intentará descargar e instalar la versión más reciente de la gema que desee.
Tengo un Gemfilepero no un .gemarchivo. Entonces, ¿qué es este .gemarchivo? ¿Qué debería contener? - Espera - ya veo. Te refieres a un gem-name.gemarchivo. Recuerde que en Unix es bastante normal tener un archivo que comience con un '.' así que es mejor explicarlo.
Martin
Puedo confirmar desde el futuro de 2020, el enlace funciona para mí. En caso de que no funcione en un futuro lejano, aquí está la instantánea de
Descargo una gema como rubygems en formato zip. Entonces no hay un archivo .gem aquí. ¿Cómo instalo esto desde local? Gracias.
Erran Morad
3
@BoratSagdiyev, un archivo zip no es una joya. Como la mayoría de los archivos zip, debe descomprimirlo antes de poder hacer mucho con él. Si contiene una gema, puede usar la instalación de gemas en el archivo .gem extraído. No recuerdo las partes internas del formato de gemas; es posible que solo sea un archivo zip con un encabezado especial, pero rubygems no reconoce los archivos zip como tales.
JasonTrue
62
También puede usar el nombre de archivo completo para su archivo de gemas:
gem install /full/path/to/your.gem
esto también funciona: es probablemente la forma más fácil
Esta parece ser la mejor respuesta moderna. la respuesta aceptada es de hace 8 años
sixty4bit
14
si descarga el archivo del proyecto desde github u otro sitio de host scm, use gem build para compilar primero el proyecto, de modo que pueda obtener un archivo whatever.gem en el directorio actual. Entonces gema instalarlo!
Si desea trabajar en una bifurcación de una gema modificada localmente, la mejor manera de hacerlo es
gem 'pry', path: './pry'
en un Gemfile
... donde ./pryestaría el clon de su repositorio. Simplemente ejecute bundle installuna vez, y cualquier cambio en las fuentes de gemas que realice se reflejará inmediatamente. Con gem install pry/pry.gem, las fuentes aún se trasladan GEM_PATHy siempre tendrá que ejecutar ambas bundle gem pryy gem updateprobar.
Mira en un ordenador con gemas ya instalados necesarios en el directorio de caché (por defecto: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
Copiar todos los " *.gemsarchivos" a un ordenador sin gemas en lugar propio caché joya (por defecto el mismo camino patrón de primer paso: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
En la consola se ubicará en el caché de gemas (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) y disparará el gem install anygemwithdependencieshere(por ejemplo cucumber-2.99.0)
Está SECO porque después de instalar cualquier gema, por defecto, rubygems coloca el archivo de gema en el directorio de gemas de caché y no tiene sentido duplicar esos archivos, es más fácil si desea que ambas computadoras tengan las mismas versiones (o bloqueadas por reglas de seguridad paranoicas: v)
Editar: en algunas versiones de ruby o rubygems, no funciona y dispara alertas o errores, puede colocar gemas en otro lugar pero no secarse, otra alternativa es usar el comando de lanzamiento integrado gem servery agregar la URL localhost en fuentes de gemas, más información en:
https://guides.rubygems.org/run-your-own-gem-server/
Respuestas:
Sí, cuando lo haga
gem install
, buscará primero el directorio actual, por lo que si su archivo .gem está allí, lo recogerá. Lo encontré en la referencia de gemas , que también puede encontrar útil:fuente
Gemfile
pero no un.gem
archivo. Entonces, ¿qué es este.gem
archivo? ¿Qué debería contener? - Espera - ya veo. Te refieres a ungem-name.gem
archivo. Recuerde que en Unix es bastante normal tener un archivo que comience con un '.' así que es mejor explicarlo.Además, puedes usar
gem install --local path_to_gem/filename.gem
Esto omitirá el escaneo habitual del repositorio de gemas que ocurre cuando lo dejas
--local
.Puedes encontrar otra magia con
gem install --help
.fuente
También puede usar el nombre de archivo completo para su archivo de gemas:
esto también funciona: es probablemente la forma más fácil
fuente
Si creas tus gemas con bundler:
Puede instalarlos con rastrillo después de que estén escritos:
Lo más probable es que tu gema descargada también lo sepa
rake install
.fuente
si descarga el archivo del proyecto desde github u otro sitio de host scm, use gem build para compilar primero el proyecto, de modo que pueda obtener un archivo whatever.gem en el directorio actual. Entonces gema instalarlo!
fuente
Si desea trabajar en una bifurcación de una gema modificada localmente, la mejor manera de hacerlo es
gem 'pry', path: './pry'
en un Gemfile
... donde
./pry
estaría el clon de su repositorio. Simplemente ejecutebundle install
una vez, y cualquier cambio en las fuentes de gemas que realice se reflejará inmediatamente. Congem install pry/pry.gem
, las fuentes aún se trasladanGEM_PATH
y siempre tendrá que ejecutar ambasbundle gem pry
ygem update
probar.fuente
Ve al camino donde está la gema y llama
gem install -l gemname.gem
fuente
Bueno, esta es mi instalación SECA:
[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)*.gems
archivos" a un ordenador sin gemas en lugar propio caché joya (por defecto el mismo camino patrón de primer paso:[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
)[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
) y disparará elgem install anygemwithdependencieshere
(por ejemplocucumber-2.99.0
)Está SECO porque después de instalar cualquier gema, por defecto, rubygems coloca el archivo de gema en el directorio de gemas de caché y no tiene sentido duplicar esos archivos, es más fácil si desea que ambas computadoras tengan las mismas versiones (o bloqueadas por reglas de seguridad paranoicas: v)
fuente
Puede descargar gemas desde https://rubygems.org/gems/ o construir su gema local a través de un paquete y un estante.
p.ej:
Tenga cuidado de instalar dependencias antes de instalar gemas reales.
Nota: Si usa td-agent fluentd y ruby en la misma máquina. Asegúrese de utilizar el comando td-agent-gem de td-agent. td-agent tiene su propio Ruby.
fuente