/ / Czy istnieje menedżer wersji dla klejnotów Ruby? - rubin na szynach, rubin, rubin na szynach-3, klejnot, rubygemy

Czy istnieje menedżer wersji klejnotów Ruby? - ruby-on-rails, ruby, ruby-on-rails-3, klejnot, rubygmaty

Jestem nowym programistą Rails. Niedawno wziąłem udział w zajęciach na temat Railsów, a teraz staram się upewnić, że rozwijam swoje umiejętności poprzez samodzielne przydzielanie projektów, które mnie popychają. Jedną rzeczą, którą staram się teraz zrobić, jest użycie Radiant CMS do zbudowania strony na blogu. Mam jednak problemy z pobraniem klejnotu Radiant. Oto co zrobiłem:

  1. Kiedy pierwszy raz spróbowałem gem install radiant, zainstalował większość wymaganych klejnotów, ale następnie rzucił ostrzeżenie (którego niestety nie zapisałem dosłownie), które brzmiało następująco:

    railties executable will overwrite rails executable. Overwrite? Y/n
    
  2. Głupio wybrałem „Y”. Gdy tylko to zrobiłem, przetestowałem mój klejnot na szynach pisząc rails new testproject i to się nie udało. Więc ponownie pobiegłem gem install rails, powiedział, aby zastąpić plik wykonywalny „poręczenia”, a następnie pobiegł gem uninstall radiant aby pozbyć się głównego promiennego klejnotu (chociaż nadal mam poręcze).

  3. Teraz mój klejnot Rails został naprawiony i mogę bez problemu tworzyć nowe projekty Rails. Ponownie jednak zainstalowałem klejnot Radiant i podczas instalacji nie tworzy projektu za każdym razem, gdy go uruchamiam.

Jestem prawie pewien, że coś złamałem, ale nie jestemstrasznie się tym martwił. Niepokoi mnie fakt, że wydaje się, że klejnot Radiant naprawdę nie współistnieje dobrze z klejnotem Rails, co prowadzi mnie do mojego pytania:

Czy jest jakiś sposób na stworzenie oddzielnych, niezależnych środowisk rubinowych, w których obecna wersja Ruby będzie używać klejnotów tylko w określonym środowisku?

Zasadniczo szukam tego, co robi rbenv, ale raczej kolekcje klejnotów niż wersje Ruby.

Obecnie mam zainstalowany Homebrew i jestemużywając rbenv jako mojego menedżera wersji. Wszystko, co do tej pory znalazłem, mówi o zarządzaniu klejnotami według projektu; Szukam czegoś, co będzie w stanie zarządzać i oddzielać klejnoty, które tworzą projekty w pierwszej kolejności. Na przykład environment_a zawiera rails i httparty podczas environment_b zawiera radiant i railties.

Nie jestem ponad całkowitym zatarciem rbenv i wszystkich moich klejnotów, i zaczynam od zera, więc jest to możliwe (i zaletą bycia noobem).

Odpowiedzi:

2 dla odpowiedzi № 1

Tak: rbenv-gemset

Myślę, że jest lepszy niż RVM, ponieważ jest mniej inwazyjny.

Używam rbenv i rbenv-gemset dookoło 2 lat i jest łatwy w użyciu. Ułatwia hermetyzację Rubinu i zestawu klejnotów w projekcie, uruchamianie wielu Rubinów i zestawów klejnotów na jednej maszynie oraz przenoszenie projektu na inną maszynę.

Możesz użyć ruby-build zainstalować inne wersje Ruby. Jest pewien sposób na zainstalowanie najnowszych wersji Ruby.

Możesz chcieć rzucić okiem Jak mogę upewnić się, że rubiny zostały zainstalowane we właściwym miejscu, aby zostały wykonane przez pakiet? Zawiera pewne istotne (i miejmy nadzieję przydatne) informacje.


5 dla odpowiedzi nr 2

Powinieneś sprawdzić bundler, ponieważ robi dokładnie to, czego potrzebujesz.


1 dla odpowiedzi nr 3

Tak jest.

Myślę, że to się nazywa RVM.

Tak jak Chris Heald powiedział, możesz sprawdzić więcej informacji na ten temat @ rvm.io/gemsets/basics


1 dla odpowiedzi nr 4

Polecam bundlerowi do tworzenia wersji klejnotów, chociaż zarówno RVM, jak i rbenv również mają tę funkcjonalność.


0 dla odpowiedzi № 5

Zapytałeś: „Czy jest jakiś sposób na stworzenie oddzielnych, niezależnych środowisk rubinowych, w których obecna wersja Ruby będzie używać klejnotów tylko w określonym środowisku?”

Najlepszy sposób, aby to zrobić rvm wchodzi do katalogu twojego projektu, a następnie uruchom:

rvm use ruby-x.y.z@your_project_name --ruby-version --create

gdzie x.y.z to twoja wersja Ruby dla tego projektu, wcześniej zainstalowana z rvm zainstaluj x.y.z

Na przykład, aby użyć najnowszej wersji Ruby z projektem o nazwie kulminacja używałbyś

rvm install 2.3.1

i wtedy

rvm use ruby-2.3.1@acme --ruby-version --create

To polecenie utworzy dwa pliki w katalogu projektów: .ruby-wersja i .ruby-gemset.

Plik .ruby-wersja zawierałby tylko numer wersji. I plik .ruby-gemset będzie zawierać tylko nazwę zestawu gem, taką samą nazwę twojego projektu (acme).

Zdarza się tak rvm jest wystarczająco inteligentny, aby sprawdzić te pliki i użyć określonego zestawu gem, który będzie znajdować się w ~/.rvm/gems/ruby-2.3.1@acme a twoje klejnoty będą znajdować się na ~/.rvm/gems/ruby-2.3.1@acme/gems.

Kilka punktów:

1) Używanie nazwy projektu jako nazwy zestawu gem NIE jest obowiązkowe. Możesz użyć czegokolwiek, co lubisz. Jest to rodzaj standardu używającego nazwy projektu, ale nie jest obowiązkowe.

2) Rbenv prawdopodobnie ma sposób, aby zrobić to samo, ale nie używam rbenv i naprawdę nie wiem, jak to zrobić.

Mam nadzieję, że ta odpowiedź pomaga.