Zgodnie z poprzednią odpowiedzią jest to dość dużo do omówienia, więc rozważ to krótkie wprowadzenie.
Klejnoty są sposobem pakowania bibliotek Ruby. Są dla Rubiego tym, czym słoiki dla Javy. W pliku gem znajduje się kod Ruby (pliki .rb), ale także testy i specjalny plik zawierający informacje o samym gemie, takie jak jego nazwa, zależności i wersja ( gemspec ). Każdy projekt Ruby może zdefiniować klejnoty, których potrzebuje, za pomocą pliku Gemfile, który musi tylko zadeklarować zależności. Rubygems to nazwa menedżera pakietów - narzędzia używanego do instalowania pakietów (podczas gdy klejnoty to same pakiety). Rubygems jest teraz częścią Rubiego.
Bundler jest tym, co sprawia, że zarządzanie klejnotami jest znośne. W oparciu o twój plik Gemfile, proste połączenie z pakietem przy użyciu instalacji pakietu spowoduje pobranie i zainstalowanie wszystkich wymaganych klejnotów. Używając standardowego polecenia gem, musiałbyś zainstalować każdy z nich ręcznie, używającgem install <gem_name>
. Bundler nie jest częścią Rubiego (sam jest zapakowany jako klejnot ), ale jest „de facto standardem” dla większości aplikacji (nie znajdziesz wielu ludzi, którzy go nie używają i nie ma dobrych powodów, aby go nie używać).
RVM to narzędzie umożliwiające zainstalowanie wielu wersji Ruby na komputerze, przełączając się między nimi w razie potrzeby. Można to wykorzystać do zainstalowania Rubiego 1.8 i 1.9, a nawet "MRI" (Matz's Ruby, domyślna implementacja) i alternatyw (takich jak JRuby lub Rubinius). Zauważ, że RVM nie jest sam w tym polu, patrz na przykład rbenv .
Zestaw kamieni w RVM to zestaw klejnotów specyficznych dla danego kontekstu, zazwyczaj projektu. Jest to przydatne, jeśli na przykład tworzysz różne aplikacje, z których każda ma własne zestawy klejnotów i chcesz je oddzielić.
system Ruby jest, kiedy używasz RVM, wersją Rubiego zainstalowaną na maszynie (tj. nie przez RVM).
Jeśli dopiero zaczynasz, interesują Cię klejnoty i pakiet. Na razie możesz odłożyć RVM i gemsets.