Como posso instalar uma jóia local?

Respostas:

288

Sim, quando você o fizer gem install, ele pesquisará primeiro o diretório atual; portanto, se o seu arquivo .gem estiver lá, ele será buscado. Encontrei-o na referência de gemas , que você pode achar útil também:

gem install instalará a gema nomeada. Ele tentará uma instalação local (ou seja, um arquivo .gem no diretório atual) e, se isso falhar, tentará baixar e instalar a versão mais recente da gema que você deseja.

Chris Bunch
fonte
2
O link termina em redirecionamentos infinitos :(
Ain Tohvri 25/11
2
Faça o check-in para dizer que isso está funcionando para mim em 2019.
Charles Wood
11
isso não está funcionando para mim em 2019
iconoclast
11
Eu tenho um, Gemfilemas não um .gemarquivo. Então, o que é esse .gemarquivo? O que deve conter? - Espere - entendo. Você quer dizer um gem-name.gemarquivo. Lembre-se que no unix é bastante normal ter um arquivo começando com um '.' então é melhor explicá-lo.
Martin
Posso confirmar a partir do futuro de 2020, o link funciona para mim. Caso isso não funcione em um futuro distante, aqui está o instantâneo
Jed Burke
329

Além disso, você pode usar gem install --local path_to_gem/filename.gem

Isso ignorará a verificação usual do repositório de gemas que acontece quando você sai --local.

Você pode encontrar outras magias com gem install --help.

JasonTrue
fonte
Faço o download de uma gema como rubygems em formato zip. Portanto, não há arquivo .gem aqui. Como instalo isso do local? Obrigado.
Erran Morad
3
@BoratSagdiyev, um arquivo zip não é uma jóia. Como a maioria dos arquivos zip, você precisa descompactá-lo antes de poder fazer muito com ele. Se ele contiver uma gema, você poderá usar a instalação da gema no arquivo .gem extraído. Não me lembro dos internos do formato gem; é possível que seja apenas um arquivo zip com um cabeçalho especial, mas o rubygems não reconhece os arquivos zip como tal.
precisa saber é o seguinte
62

Você também pode usar o nome completo do arquivo no seu arquivo gem:

gem install /full/path/to/your.gem

isso também funciona - provavelmente é a maneira mais fácil

lesmana
fonte
38

Se você criar suas jóias com o bundler:

# do this in the proper directory
bundle gem foobar

Você pode instalá-los com rake após serem gravados:

# cd into your gem directory
rake install

As chances são de que a sua jóia baixada também saiba rake install.

Boris Stitnicky
fonte
3
essa parece ser a melhor resposta moderna. resposta aceita é de 8 anos atrás
sixty4bit 3/16
14

se você fizer o download do arquivo do projeto no github ou em outro site host scm, use gem build para criar o projeto primeiro, para que você possa obter um arquivo qualquer.gem no diretório atual. Então gem instalá-lo!

hechen0
fonte
13

Se você deseja trabalhar em um garfo de uma gema modificado localmente, a melhor maneira de fazer isso é

gem 'pry', path: './pry'

em um Gemfile.

... onde ./pryseria o clone do seu repositório. Basta executar bundle installuma vez e quaisquer alterações nas fontes de gemas que você fizer serão refletidas imediatamente. Com gem install pry/pry.gem, as fontes ainda são movidas GEM_PATHe você sempre precisará executar as duas bundle gem prye gem updatetestar.

Matthias Winkelmann
fonte
5

Vá para o caminho em que a jóia está e ligue gem install -l gemname.gem

leobelizquierdo
fonte
0

Bem, esta é a minha instalação DRY:

  1. Procure um computador com gemas já instaladas necessárias no diretório de cache (por padrão: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache :)
  2. Copie todos os " *.gemsarquivos" para um computador sem gemas no próprio local do cache de gemas (por padrão, o mesmo caminho do consumidor da primeira etapa [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache:)
  3. No console, localize-se no cache de gemas (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) e ative o gem install anygemwithdependencieshere(por exemplo cucumber-2.99.0)

É SECO porque depois de instalar qualquer gem, por padrão, rubygems coloca o arquivo gem no diretório gem do cache e não faz sentido duplicar esses arquivos, é mais fácil se você deseja que o computador tenha as mesmas versões (ou bloqueado por regras de segurança paranóicas: v)

Edit: Em algumas versões do ruby ​​ou rubygems, ele não funciona e dispara alertas ou erros, você pode colocar gemas em outro lugar, mas não ficar seco, outra alternativa é usar o comando launch integrado gem servere adicionar o URL do host local em fontes de gemas, mais informações em: https://guides.rubygems.org/run-your-own-gem-server/

Daniel Antonio Nuñez Carhuayo
fonte
0

Você pode baixar gemas em https://rubygems.org/gems/ ou criar sua gema local via pacote e rack.

por exemplo:

  • gem do pacote yourGemName
  • instalação de rake

Cuide da instalação das dependências antes de instalar as gemas reais.

  • gem install --local /pathToFolder/xxx-2.6.1.gem

Nota: Se estiver usando fluentd td-agent e ruby ​​na mesma máquina. Certifique-se de usar o comando td-agent-gem do td-agent. O agente td possui o próprio Ruby.

Vinayak Mishra
fonte