RubyGems - RubyGems
Versão estável | 3.2.20 / 11 de junho de 2021
|
---|---|
Repositório | |
Escrito em | Rubi |
Sistema operacional | Plataforma cruzada |
Modelo | Gerenciador de pacotes |
Licença | Licença Ruby |
Local na rede Internet | rubygems |
Joias totais | 133.000+ |
---|---|
Total de downloads | Mais de 14 bilhões |
RubyGems é um gerenciador de pacotes para a linguagem de programação Ruby que fornece um formato padrão para distribuição de programas e bibliotecas Ruby (em um formato independente chamado "gem"), uma ferramenta projetada para gerenciar facilmente a instalação de gems e um servidor para distribuí-los. Foi criado por Chad Fowler , Jim Weirich , David Alan Black , Paul Brannan e Richard Kilmer durante a RubyConf 2004.
A interface para RubyGems é uma ferramenta de linha de comando chamada gem que pode instalar e gerenciar bibliotecas (as gemas). RubyGems se integra ao carregador de tempo de execução Ruby para ajudar a encontrar e carregar joias instaladas de pastas de biblioteca padronizadas. Embora seja possível usar um repositório RubyGems privado , o repositório público é mais comumente usado para gerenciamento de gemas.
O repositório público ajuda os usuários a encontrar gemas, resolver dependências e instalá-las. RubyGems é fornecido com o pacote Ruby padrão a partir do Ruby 1.9.
História
O desenvolvimento em RubyGems começou em novembro de 2003 e foi lançado ao público em 14 de março de 2004, ou Pi Day 2004. Em 2010, o repositório público padrão para gems mudou de gems.rubyforge.org para rubygems.org, que ainda está em uso . Além disso, o desenvolvimento do RubyGems foi movido para o GitHub em 2010. Embora o RubyGems exista desde o Ruby 1.8, ele não fazia parte da distribuição padrão do Ruby até o Ruby 1.9.
Anteriormente, a compatibilidade com RubyGems e Ruby variava. Muitas versões de RubyGems são quase totalmente incompatíveis com muitas versões de Ruby e algumas versões tinham recursos-chave inutilizáveis. Por exemplo, Ruby 1.9 veio com RubyGems 1.3.7 em sua distribuição padrão, mas RubyGems 1.4.x não era compatível com Ruby 1.9. Isso significava que a atualização do RubyGems no Ruby 1.9 não era possível até o RubyGems 1.5.0 ser lançado em 2011, dois anos após o primeiro lançamento estável do Ruby 1.9. Esses problemas de compatibilidade levaram a um rápido desenvolvimento do RubyGems, mudando para um cronograma de lançamento de 4 a 6 semanas. Isso se reflete em 38 lançamentos de 2004 a 2010 e 117 lançamentos de 2011 a 2016. 45 versões foram lançadas em 2013, que é o maior número de lançamentos em um ano para RubyGems.
Estrutura de uma joia
Cada gema contém um nome, versão e plataforma. Gems funcionam apenas em ruby projetado para uma plataforma particular com base na arquitetura da CPU e tipo e versão do sistema operacional.
Cada joia consiste em:
- Código
- Documentação
- Especificação de gemas (Gemspec)
A organização do código segue a seguinte estrutura para uma gema chamada gem_name :
gem_name/ ├── bin/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── test/ │ └── test_gem_name.rb ├── README ├── Rakefile └── gem_name.gemspec
- O diretório lib contém o código do gem.
- O diretório test (ou spec) é usado para teste.
- Rakefile é usado pelo Rake para automatizar testes e gerar código.
- README inclui a documentação, RDOC , para a maioria das gemas.
- A especificação da gema (gemspec) contém informações sobre o autor da gema, o tempo de criação e a finalidade a que a gema atende.
Preocupações com segurança
Como as gemas de ruby executam seu próprio código em um aplicativo, isso pode levar a vários problemas de segurança devido à instalação de gemas maliciosas. O criador de gemas maliciosas pode comprometer o sistema do usuário ou servidor.
Vários métodos foram desenvolvidos para combater a ameaça à segurança:
- Assinatura criptográfica de gemas desde RubyGems versão 0.8.11. Os comandos gem cert e gem install são usados para esse propósito.
- Novos modelos de assinatura, como X509 e OpenPGP , foram propostos e estão sendo ativamente discutidos entre os especialistas em Ruby.