Respuestas:
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)
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :branch => 'yourbranch'
gem 'redcarpet', github: 'tanoku/redcarpet'
. akash.im/2012/06/05/bundler-new-github-option.html
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git', :tag => 'v2.3.5'
<- la :tag => ''
parte
bueno, eso depende del proyecto en cuestión. Algunos proyectos tienen un archivo * .gemspec en su directorio raíz. En ese caso, sería
gem build GEMNAME.gemspec
gem install gemname-version.gem
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.
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.
gem install specific_install
gem specific_install -l <url to a github gem>
p.ej
gem specific_install https://github.com/githubsvnclone/rdoc.git
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:
# Use the http(s), ssh, or git protocol
gem 'foo', git: 'https://github.com/dideler/foo.git'
gem 'foo', git: 'git@github.com:dideler/foo.git'
gem 'foo', git: 'git://github.com/dideler/foo.git'
# Specify a tag, ref, or branch to use
gem 'foo', git: 'git@github.com:dideler/foo.git', tag: 'v2.1.0'
gem 'foo', git: 'git@github.com:dideler/foo.git', ref: '4aded'
gem 'foo', git: 'git@github.com:dideler/foo.git', branch: 'development'
# Shorthand for public repos on GitHub (supports all the :git options)
gem 'foo', github: 'dideler/foo'
Para obtener más información, consulte https://bundler.io/v2.0/guides/git.html
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 ejemplo www-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:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Si obtiene sus gemas de un repositorio público de GitHub, puede usar la abreviatura
gem 'nokogiri', github: 'tenderlove/nokogiri'
También puedes hacer gem install username-projectname -s http://gems.github.com
En su Gemfile, agregue lo siguiente:
gem 'example', :git => 'git://github.com/example.git'
También puede agregar opciones de referencia, ramificación y etiqueta,
Por ejemplo, si desea descargar desde una rama en particular:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
Entonces corre:
bundle install
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.
En una máquina Linux nueva también necesita instalar git
. Bundle lo usa detrás de escena.
require "bundler" Bundler.setup(:default)
ver los documentos del paquete para más detalles