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.


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.


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


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.


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!


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.



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/


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.