Pergunta

Eu leio "Relacionamentos entre Rubygems, Bundler e RVM" antes de perguntar novamente.

Bem, existem muitas perguntas como essa, mas as pessoas que responderam dizem que trabalham com Rubygems, RVM e Bundler, e não explicaram como cada um deles funciona isoladamente.

Estou realmente confuso com a forma como os três funcionam isoladamente quando instalamos gemas.Por favor, não me diga como você trabalha, o que vai me ajudar, mas não vou saber o que acontece quando brincamos com eles.

Minha confusão pode ser dividida nessas questões.Onde uma gem é instalada quando:

  1. Só tenho Rubygems (sem RVM ou Bundler)?
  2. Rubygems e RVM estão instalados?
  3. Rubygems, RVM e Bundler estão instalados?

Por favor, ajude-me a entender essas coisas com recursos na web ou com suas respostas detalhadas.

Foi útil?

Solução

  1. Para descobrir para onde as jóias estão sendo instaladas, execute echo $GEM_HOME em um terminal.
  2. Ao usar o RVM, o GEMS é instalado na instalação do RVM à medida que muda $ gem_home. Corrida echo $GEM_HOME Agora mostraria um caminho para a instalação do RVM.
  3. Quando o Bundler for adicionado à mistura, as gemas serão instaladas em $GEM_HOME, ou, se você especificar um caminho ao executar bundle install será instalado nesse caminho. Para descobrir onde uma jóia está através do Bundler, você pode usar bundle show gemname Para conseguir seu caminho completo.

Outras dicas

Usar gem env para listar os caminhos da GEM em cada contexto.

Sem RVM gem env relatará os caminhos da biblioteca do sistema GEM.

Com RVM gem env relatará os caminhos da biblioteca de gem gerenciados pelo RVM.

O Bundler gerencia dependências de aplicativos e instala na biblioteca GEM em seu ambiente. Se você estiver usando o RVM + Bundler, o GEMS será instalado nos diretórios GEM gerenciados pelo RVM. Se você o estiver usando sem RVM, o Bundler instalará Gems nos diretórios do System Gem.

Para encontrar o caminho onde uma gem está instalada, use:

gem which gem_name

Para encontrar executáveis ​​(como html2haml), use:

which executable_name

Para evitar digitar bundle exec html2haml que é recomendado pela equipe Bundler, use meu empacotador rubygems gema.

Também estou tentando entender como funciona. O blog "Conselhos sobre o uso de Ruby, RVM, Passageiro, Rails, Bundler,… em Desenvolvimento"Me ajudou a ter uma visão geral melhor.

BTW, é uma tradução de um artigo francês, a versão francesa é melhor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top