Aktualizacja: od tego czasu napisałem bardzo szczegółowe wyjaśnienie różnych sposobów instalowania klejnotów Ruby na komputerze Mac. Moja pierwotna rekomendacja dotycząca używania skryptu jest nadal aktualna, ale mój artykuł jest bardziej szczegółowy: https://www.moncefbelyamani.com/the-definitive-guide-to-installing-ruby-gems-on-a-mac/
Masz rację, że macOS nie pozwoli ci niczego zmienić w wersji Ruby, która jest zainstalowana na komputerze Mac. Jednak możliwe jest zainstalowanie klejnotów, tak jak bundler
przy użyciu oddzielnej wersji Rubiego, która nie koliduje z wersją dostarczoną przez Apple.
Używanie sudo
do instalowania klejnotów lub zmienianie uprawnień do plików systemowych i katalogów jest zdecydowanie odradzane, nawet jeśli wiesz, co robisz. Czy możemy przestać udzielać tej złej rady? Oto szczegółowy artykuł, który napisałem, pokazujący, jak sudo gem install
wyczyścić komputer: https://www.moncefbelyamani.com/why-you-should-never-use-sudo-to-install-ruby-gems/
Rozwiązanie obejmuje dwa główne kroki:
- Zainstaluj oddzielną wersję Rubiego, która nie koliduje z wersją dostarczoną z komputerem Mac.
- Zaktualizuj swój
PATH
tak, aby lokalizacja nowej wersji Rubiego była pierwsza w pliku PATH
. Niektóre narzędzia robią to automatycznie. Jeśli nie znasz PATH
i nie wiesz, jak to działa, przeczytaj mój przewodnik .
Istnieje kilka sposobów instalacji Rubiego na komputerze Mac. Najlepszym sposobem, który polecam i chciałbym, aby był bardziej rozpowszechniony w różnych instrukcjach instalacji, jest użycie zautomatyzowanego skryptu , który skonfiguruje dla Ciebie odpowiednie środowisko Ruby. To drastycznie zmniejsza ryzyko wystąpienia błędu z powodu nieodpowiednich instrukcji, które zmuszają użytkownika do ręcznego wykonywania wielu rzeczy i pozostawiania im samodzielnego rozwiązania wszystkich niezbędnych kroków.
Inną drogą, którą możesz wybrać, jest spędzenie dodatkowego czasu na robieniu wszystkiego ręcznie i nadzieja na najlepsze. Najpierw będziesz chciał zainstalować Homebrew , który instaluje wstępnie wymagane narzędzia wiersza poleceń i ułatwia instalację innych niezbędnych narzędzi.
Następnie dwa najłatwiejsze sposoby zainstalowania oddzielnej wersji Rubiego to:
Jeśli chcesz mieć możliwość łatwego przełączania się między wieloma wersjami Rubiego [ZALECANE]
Wybierz jedną z czterech opcji:
- chruby i ruby-install - moje osobiste rekomendacje i te, które są automatycznie instalowane przez mój skrypt. Można je zainstalować z Homebrew:
brew install chruby ruby-install
Jeśli wybrałeś chruby
i ruby-install
, możesz zainstalować najnowszą wersję Rubiego w następujący sposób:
ruby-install ruby
Po zainstalowaniu wszystkiego i skonfigurowaniu .zshrc
lub .bash_profile
zgodnie z instrukcjami z powyższych narzędzi, zamknij i uruchom ponownie Terminal, a następnie przełącz się na żądaną wersję Rubiego. W przypadku chruby
byłoby to coś takiego:
chruby 2.7.2
To, czy musisz skonfigurować, .zshrc
czy .bash_profile
zależy od używanej powłoki. Jeśli nie masz pewności, przeczytaj ten przewodnik: https://www.moncefbelyamani.com/which-shell-am-i-using-how-can-i-switch/
Jeśli wiesz na pewno, że nie potrzebujesz więcej niż jednej wersji Ruby w tym samym czasie (oprócz tej, która została dostarczona z macOS)
- Zainstaluj Ruby z Homebrew:
brew install ruby
Następnie zaktualizuj PATH
, uruchamiając (zastąp 2.7.0
nowo zainstalowaną wersją):
echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.7.0/bin:$PATH"' >> ~/.zshrc
Następnie „odśwież” powłokę, aby zmiany odniosły skutek:
source ~/.zshrc
Możesz też otworzyć nową kartę terminala lub zamknąć i ponownie uruchomić Terminal.
Wymienić .zshrc
ze .bash_profile
jeśli używasz bash. Jeśli nie masz pewności, której powłoki używasz, przeczytaj ten przewodnik: https://www.moncefbelyamani.com/which-shell-am-i-using-how-can-i-switch/
Aby sprawdzić, czy używasz niesystemowej wersji Rubiego, możesz uruchomić następujące polecenia:
which ruby
To powinno być coś innego niż /usr/bin/ruby
ruby -v
Powinno to być coś innego niż 2.6.3, jeśli korzystasz z macOS Catalina. Na dzień dzisiejszy 2.7.2 jest najnowszą wersją Rubiego.
Po zainstalowaniu tej nowej wersji Rubiego możesz teraz zainstalować pakiet (lub dowolny inny klejnot):
gem install bundler
rbenv
musisz to zrobićecho 'eval "$(rbenv init -)"' >> ~/.bash_profile
. Źródło