Gostaria de instalar o gem da última fonte do GitHub.
Como eu faço isso?
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)
require "bundler" Bundler.setup(:default)
Veja docs bundler para mais detalhesgem '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'
<- a:tag => ''
partebem, isso depende do projeto em questão. Alguns projetos têm um arquivo * .gemspec em seu diretório raiz. Nesse caso, seria
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.
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.
por exemplo
fonte
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:
Para mais informações, consulte https://bundler.io/v2.0/guides/git.html
fonte
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 exemplowww-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:
fonte
Se você estiver obtendo suas jóias de um repositório público do GitHub, poderá usar a abreviação
fonte
Você também pode fazer
gem install username-projectname -s http://gems.github.com
fonte
No seu Gemfile, adicione o seguinte:
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:
Então corra:
fonte
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.fonte
Em uma nova máquina Linux, você também precisa instalar
git
. Bundle usa nos bastidores.fonte