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.
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
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!
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.
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 :)
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:)
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/
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.
Respostas:
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:fonte
Gemfile
mas não um.gem
arquivo. Então, o que é esse.gem
arquivo? O que deve conter? - Espere - entendo. Você quer dizer umgem-name.gem
arquivo. Lembre-se que no unix é bastante normal ter um arquivo começando com um '.' então é melhor explicá-lo.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
.fonte
Você também pode usar o nome completo do arquivo no seu arquivo gem:
isso também funciona - provavelmente é a maneira mais fácil
fonte
Se você criar suas jóias com o bundler:
Você pode instalá-los com rake após serem gravados:
As chances são de que a sua jóia baixada também saiba
rake install
.fonte
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!
fonte
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
./pry
seria o clone do seu repositório. Basta executarbundle install
uma vez e quaisquer alterações nas fontes de gemas que você fizer serão refletidas imediatamente. Comgem install pry/pry.gem
, as fontes ainda são movidasGEM_PATH
e você sempre precisará executar as duasbundle gem pry
egem update
testar.fonte
Vá para o caminho em que a jóia está e ligue
gem install -l gemname.gem
fonte
Bem, esta é a minha instalação DRY:
[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
:)*.gems
arquivos" 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
:)[Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache
) e ative ogem install anygemwithdependencieshere
(por exemplocucumber-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)
fonte
Você pode baixar gemas em https://rubygems.org/gems/ ou criar sua gema local via pacote e rack.
por exemplo:
Cuide da instalação das dependências antes de instalar as gemas reais.
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.
fonte