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.
W jednym pytaniu prosisz o więcej informacji, niż jest to możliwe w przypadku przepełnienia stosu. Aby to wszystko opisać, potrzebna byłaby książka.
W Ubuntu łatwo jest zainstalować i usunąć klejnoty w „systemowej” wersji Rubiego, więc przyzwyczaj się do instalowania i usuwania zwykłych klejnotów za pośrednictwem
sudo
. (W przypadku Mac OS dałbym inną radę, ponieważ Apple pakuje Ruby na własny użytek i nie jest dobrym pomysłem, aby z nim zadzierać). Wtedy, kiedy masz pojęcie, jak działa cały pomysł na klejnot, i wiesz, że chcesz wiele Wersje Ruby w twoim systemie, spróbuj " rbenv " lub " RVM " i zainstaluj jedną lub dwie wersje w swoim piaskownicy.Linux ułatwia dodawanie / usuwanie Rubiego za pośrednictwem dystrybucji, ale jesteśmy ograniczeni do wersji, które opiekunowie dystrybucji mają w pakiecie, więc zwykle instaluję ze źródła. Ale to jest uciążliwe przy zarządzaniu kilkoma wersjami Ruby dla systemów programistycznych, testowych i produkcyjnych, dlatego wynaleziono rbenv i RVM - zajmują się brudnymi szczegółami, pozwalając nam skoncentrować się na programowaniu.
Używałem zarówno rbenv, jak i RVM , i używam rbenv przez ostatnie sześć miesięcy, z dobrymi wynikami. To mniej skomplikowane niż RVM, który mi się podoba. W obu przypadkach ułatwiają instalację różnych wersji z oddzielnymi zestawami klejnotów. Jeśli chcesz, możesz mieć różne wersje Rubiego otwarte w różnych oknach terminala, co ułatwi testowanie zgodności.
Zasada pierwsza, kiedy debugowanie polega na wprowadzaniu zmian pojedynczo, co jest prawdziwe w przypadku nauki programowania lub uczenia się nowego języka. Nie rozpraszaj się, po prostu zachowaj prostotę.
źródło