RubyGems - RubyGems
Stabilní uvolnění | 3.2.20 / 11. června 2021
|
---|---|
Úložiště | |
Napsáno | Rubín |
Operační systém | Cross-platform |
Typ | Správce balíčků |
Licence | Ruby License |
webová stránka | rubygems |
Celkem drahokamy | 133 000+ |
---|---|
Celkový počet stažení | 14+ miliard |
RubyGems je správce balíčků pro programovací jazyk Ruby, který poskytuje standardní formát pro distribuci programů a knihoven Ruby (v samostatném formátu nazývaném „drahokam“), nástroj navržený pro snadnou správu instalace drahokamů a server pro jejich distribuce. To bylo vytvořeno Chad Fowler , Jim Weirich , David Alan Black , Paul Brannan a Richard Kilmer během RubyConf 2004.
Rozhraní pro RubyGems je nástroj příkazového řádku s názvem gem, který dokáže instalovat a spravovat knihovny (drahokamy). RubyGems se integruje s run-time zavaděčem Ruby, aby pomohl najít a načíst nainstalované drahokamy ze standardizovaných složek knihovny. Ačkoli je možné použít soukromé úložiště RubyGems , veřejné úložiště se nejčastěji používá pro správu drahokamů.
Veřejné úložiště pomáhá uživatelům najít drahokamy, vyřešit závislosti a nainstalovat je. RubyGems je dodáván se standardním balíčkem Ruby od verze Ruby 1.9.
Dějiny
Vývoj na RubyGems byl zahájen v listopadu 2003 a pro veřejnost byl vydán 14. března 2004 nebo Pi Day 2004. V roce 2010 se výchozí veřejné úložiště drahokamů přesunulo z gems.rubyforge.org na rubygems.org, který se stále používá. . V roce 2010 byl také vývoj RubyGems přesunut na GitHub . Ačkoli RubyGems existuje od Ruby 1.8, nebyl součástí standardní distribuce Ruby až do Ruby 1.9.
Dříve se kompatibilita s RubyGems a Ruby lišila. Mnoho verzí RubyGems je téměř plně nekompatibilních s mnoha verzemi Ruby a některé verze měly klíčové funkce nepoužitelné. Například Ruby 1.9 přišel s RubyGems 1.3.7 ve své standardní distribuci, ale RubyGems 1.4.x nebyl kompatibilní s Ruby 1.9. To znamenalo, že aktualizace RubyGems na Ruby 1.9 nebyla možná, dokud v roce 2011 nevyšel RubyGems 1.5.0, dva roky po prvním stabilním vydání Ruby 1.9. Tyto problémy s kompatibilitou vedly k rychlému vývoji RubyGems, přechod na plán vydání 4–6 týdnů. To se odráží v 38 vydáních od roku 2004 do roku 2010 a 117 vydáních od roku 2011 do roku 2016. V roce 2013 bylo vydáno 45 verzí, což je pro RubyGems nejvyšší počet vydání za rok.
Struktura drahokamu
Každý drahokam obsahuje název, verzi a platformu. Drahokamy fungují pouze na ruby navrženém pro konkrétní platformu na základě architektury CPU a typu a verze operačního systému.
Každý drahokam se skládá z:
- Kód
- Dokumentace
- Specifikace drahokamů (Gemspec)
Organizace kódu dodržuje pro gem s názvem gem_name následující strukturu :
gem_name/ ├── bin/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── test/ │ └── test_gem_name.rb ├── README ├── Rakefile └── gem_name.gemspec
- Adresář lib obsahuje kód pro drahokam.
- K testování se používá adresář test (nebo spec).
- Rakefile používá Rake k automatizaci testů a ke generování kódu.
- README obsahuje dokumentaci RDOC pro většinu drahokamů.
- Specifikace drahokamu (gemspec) obsahuje informace o autorovi drahokamu, čase vytvoření a účelu, ke kterému klenot slouží.
Bezpečnostní obavy
Protože rubínové drahokamy provozují v aplikaci vlastní kód, může to kvůli instalaci škodlivých drahokamů vést k různým problémům se zabezpečením. Tvůrce škodlivých drahokamů může být schopen ohrozit uživatelský systém nebo server.
Pro boj s bezpečnostní hrozbou byla vyvinuta řada metod:
- Kryptografické podepisování drahokamů od verze RubyGems 0.8.11. K tomuto účelu slouží příkazy gem cert a gem install.
- Byly navrženy nové podpisové modely jako X509 a OpenPGP, o nichž se mezi odborníky z Ruby aktivně diskutuje.