Me gustaría instalar la gema de la última fuente de GitHub.
¿Cómo hago esto?
En caso de que esté utilizando un paquete, debe agregar algo como esto a su Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
Y en caso de que haya un .gemspec
archivo, debería poder recuperar e instalar la gema cuando se ejecute bundle install
.
UPD Como se indica en los comentarios, para que Bundler funcione correctamente, también debe agregar lo siguiente a config.ru
:
require "bundler"
Bundler.setup(:default)
require "bundler" Bundler.setup(:default)
ver los documentos del paquete para más detallesgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.htmlgem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- la:tag => ''
partebueno, eso depende del proyecto en cuestión. Algunos proyectos tienen un archivo * .gemspec en su directorio raíz. En ese caso, sería
Otros proyectos tienen una tarea de rastrillo, llamada "gema" o "compilación" o algo así, en este caso hay que invocar "rastrillo", pero eso depende del proyecto.
En ambos casos tienes que descargar la fuente.
fuente
gemname-version.gem
archivo se crea cuando se invocagem build
gem install gemname-version.gem
instala el comando la gema git localmente? No puedo encontrar en ninguna parte de mi máquina local una gema de motor instalada de esta manera. ¿Dónde lo esconde bundler?gem install gemname-version.gem
línea debería sergem install --local gemname-version.gem
gem which gemname
debería decirte dónde está una gema específica, ¿no te funciona?Pruebe la gema específica_instalación que le permite instalar una gema desde su repositorio github (como 'edge'), o desde una URL arbitraria. Muy útil para bifurcar gemas y piratearlas en múltiples máquinas y tal.
p.ej
fuente
specific_install
gema?ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Suena genial, pero no lo investigaré más a fondo. Solo quería publicar que no funcionó para mí en caso de que alguien más esté a punto de darle un giro basado en la recomendación de SO.Bundler te permite usar gemas directamente desde repositorios git. En tu Gemfile:
Para obtener más información, consulte https://bundler.io/v2.0/guides/git.html
fuente
bundle
, tales dependencias de git-gem- no se instalarán globalmente, sino en el directorio de inicio del usuario actual. Passenger ejecutará ruby como usuario de su servidor web (por ejemplowww-data
) que no tiene acceso a este directorio y, por lo tanto, este "git-gem" no se cargará. Obtendrás un error... is not yet checked out. Run bundle install first
.OBSOLETO (ver comentarios)
Si el proyecto es de github y está incluido en la lista en http://gems.github.com/list.html , puede agregar el repositorio de github a las fuentes de gemas para instalarlo:
fuente
Si obtiene sus gemas de un repositorio público de GitHub, puede usar la abreviatura
fuente
También puedes hacer
gem install username-projectname -s http://gems.github.com
fuente
En su Gemfile, agregue lo siguiente:
También puede agregar opciones de referencia, ramificación y etiqueta,
Por ejemplo, si desea descargar desde una rama en particular:
Entonces corre:
fuente
Si instala utilizando bundler como lo sugiere gryzzly y la gema crea un binario, asegúrese de ejecutarlo ya
bundle exec mygembinary
que la gema se almacena en un directorio de paquete que no es visible en la ruta normal de la gema.fuente
En una máquina Linux nueva también necesita instalar
git
. Bundle lo usa detrás de escena.fuente