Respostas:
Caso esteja usando o bundler, você precisa adicionar algo assim ao seu Gemfile:
gem 'redcarpet', :git => 'git://github.com/tanoku/redcarpet.git'
E, no caso de haver um .gemspec
arquivo, ele deverá conseguir buscar e instalar a gema durante a execução bundle install
.
UPD. Conforme indicado nos comentários, para o Bundler funcionar corretamente, você também precisa adicionar o seguinte 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'
<- a :tag => ''
parte
bem, isso depende do projeto em questão. Alguns projetos têm um arquivo * .gemspec em seu diretório raiz. Nesse caso, seria
gem build GEMNAME.gemspec
gem install gemname-version.gem
Outros projetos têm uma tarefa de rake, chamada "gem" ou "build" ou algo parecido, nesse caso, você precisa chamar "rake", mas isso depende do projeto.
Nos dois casos, você deve baixar a fonte.
gemname-version.gem
arquivo é criado ao invocargem build
gem install gemname-version.gem
comando instala o gem git localmente? Não consigo encontrar em nenhum lugar da máquina local uma gema de mecanismo instalada dessa maneira. Onde o bundler o oculta?
gem install gemname-version.gem
linha deve sergem install --local gemname-version.gem
gem which gemname
deve dizer onde está uma jóia específica, isso não funciona para você?
Experimente a jóia specific_install que permite instalar uma jóia a partir do repositório do github (como 'edge') ou de um URL arbitrário. Muito útil para bifurcar gemas e hackear nelas em várias máquinas e tal.
gem install specific_install
gem specific_install -l <url to a github gem>
por exemplo
gem specific_install https://github.com/githubsvnclone/rdoc.git
specific_install
gema?
ERROR: While executing gem ... (NoMethodError) undefined method 'build' for Gem::Package:Module
Parece muito legal, mas eu não irei investigar mais. Só queria postar que não funcionou para mim no caso de alguém estar prestes a dar um giro com base na recomendação do SO.
O Bundler permite que você use gems diretamente de repositórios git. No seu 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 mais informações, consulte https://bundler.io/v2.0/guides/git.html
bundle
, essas dependências do git-gem- não serão instaladas globalmente, mas no diretório inicial do usuário atual. O passageiro executará o ruby como usuário do seu servidor da web (por exemplo www-data
), que não tem acesso a esse diretório e, portanto, esse "git-gem" não será carregado. Você receberá um erro ... is not yet checked out. Run bundle install first
.
OBSOLETO (ver comentários)
Se o projeto é do github, e está contido na lista em http://gems.github.com/list.html , você pode adicionar o repositório do github às fontes do gems para instalá-lo:
$ gem sources -a http://gems.github.com
$ sudo gem install username-projectname
Se você estiver obtendo suas jóias de um repositório público do GitHub, poderá usar a abreviação
gem 'nokogiri', github: 'tenderlove/nokogiri'
Você também pode fazer gem install username-projectname -s http://gems.github.com
No seu Gemfile, adicione o seguinte:
gem 'example', :git => 'git://github.com/example.git'
Você também pode adicionar opções de ref, branch e tag,
Por exemplo, se você deseja fazer o download de uma ramificação específica:
gem 'example', :git => "git://github.com/example.git", :branch => "my-branch"
Então corra:
bundle install
Se você instalar usando o bundler, conforme sugerido pelo gryzzly, e o gem criar um binário, certifique-se de executá-lo, bundle exec mygembinary
pois o gem é armazenado em um diretório do bundler que não é visível no caminho normal do gem.
Em uma nova máquina Linux, você também precisa instalar git
. Bundle usa nos bastidores.
require "bundler" Bundler.setup(:default)
Veja docs bundler para mais detalhes