Jak naprawić błąd „Nie masz uprawnień do zapisu w katalogu / usr / bin” podczas instalowania Railsów?

132

Próbuję zainstalować Rails 3 na zupełnie nowym MacBooku Pro z systemem OS X 10.6.3, Ruby 1.8.7 i Rails 2.3.5 i zastanawiam się, czy się połączyłem. Do tej pory uruchomiłem te polecenia:

$ gem update --system
$ gem install arel tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
$ gem install rails --pre

Jednak po uruchomieniu ostatniego polecenia pojawia się ten błąd:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

Myślę, że chce, żebym uruchomił polecenie, sudoaby mógł pisać /usr/bin/rails. Ale jeśli to zrobię, czy nie nadpiszę swojego pliku wykonywalnego Railsów 2.3.5? Nie chcę tego robić. Zamiast tego chciałbym zachować obie wersje Railsów. W jaki sposób mogę to zrobić?

Promień
źródło
5
sudo gem update --system -n /usr/local/bin
Otrzymałem
1
Co to jest -n?
Scott Romack
Zamierzam to tutaj powiedzieć, że po prostu ponowne uruchomienie terminala rozwiązało to dla mnie.
jesion

Odpowiedzi:

14

Sugerowałbym użycie RVM, który pozwala na zainstalowanie wielu wersji Ruby / Rails z profilami klejnotów i zasadniczo utrzymuje wszystkie klejnoty zawarte od siebie. Możesz sprawdzić podobny post Jak mogę zainstalować Ruby on Rails 3 na OSX

Tarellel
źródło
tylko zrobienie tego rozwiązało dla mnie podobny problem z tym samym komunikatem o błędzie
Rich Stone
479

użyj -nparametru do instalacji jak dla cocoapods:

sudo gem install cocoapods -n /usr/local/bin
Pradeep Kachhawaha
źródło
7
Dlaczego mielibyśmy tego w ogóle potrzebować?
nenchev
28
Błąd w systemie MacOS, chyba że określisz -n / usr / local / bin. Dzięki za rozwiązanie
Sacky San,
3
Co oznacza -n?
allenlinli
7
zgodnie z guide.rubygems.org/command-reference/#gem-install , -n określa katalog, w którym znajdują się pliki binarne. Potrzebowałem też -n /usr/local/binna moim Macu. Pobiegłem, which podaby określić jego istniejącą lokalizację, zanim
użyłem
3
Jestem pewien, że RVM jest świetny, ale jest to lepsza odpowiedź, która bezpośrednio rozwiązuje bezpośredni problem bez wysyłania mnie do króliczej nory.
Wayne
62

Używanie flagi -n / usr / local / bin działa, ALE musiałem wracać na tę stronę za każdym razem, gdy chciałem ponownie zaktualizować pakiet. Więc wymyśliłem trwałe rozwiązanie tego problemu.

Dla zainteresowanych naprawieniem tego na stałe :

Utwórz plik ~ / .gemrc

vim .gemrc

Z następującą treścią:

:gemdir:
   - ~/.gem/ruby
install: -n /usr/local/bin

Teraz możesz normalnie uruchomić polecenie bez opcji -n.

Cieszyć się!

Francois Nadeau
źródło
vim .gemrcjak napisać to cmd
Chandni
Nie jestem pewien, czy to zadziała w Window $, ale myślę, że możesz użyć Notatnika.
Francois Nadeau
Dziękuję, tak jak Ty byłem zmęczony szukaniem tego sufiksu za każdym razem, gdy potrzebowałem dokonać aktualizacji!
Paul-Etienne
49
sudo gem install cocoapods --pre -n /usr/local/bin

To działa dla mnie.

tong Xu
źródło
Miałem ten problem i ta odpowiedź zadziałała dla mnie! Zastąpiłem cocoapodszależnością, której potrzebowałem
chris
33

Możesz użyć sudo gem install -n /usr/local/bin cocoapods

To działa dla mnie.

Damini
źródło
6

Aby naprawić określony błąd, musisz uruchomić to polecenie jako sudo, tj .:

sudo gem install rails --pre
Andrew Nesbitt
źródło
1
NIE. Użyj rvm lub rbenv ... nie tylko sudo.
doublejosh
5

Ten błąd pojawił się po prawidłowym zainstalowaniu RVM. Rozwiązanie: uruchom ponownie Terminal.

Odwołanie RVM RailsCast ZAINSTALUJ poradnik.

Akorn
źródło
Nie dokładnie 7 lat później, ale działa to również, jeśli pracujesz nad podsystemem bash systemu Windows. Po prostu wyjdź z basha i uruchom go ponownie. Dziękuję Ci.
Pedro Madrid
0

U mnie zadziałało coś innego, co znalazłem w tej odpowiedzi z podobnego pytania. Pewnie nie pomoże OP, ale może ktoś taki jak ja miał podobny problem.

Rzeczywiście powinieneś używać rvm , ale ponieważ nikt nie wyjaśnił ci, jak to zrobić bez rvm , proszę bardzo:

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \
  abstract erubis activesupport mime-types mail text-hyphen text-format   \
  thor i18n rake bundler arel railties rails --prerelease --force
Sebastian D'Agostino
źródło
-2

W systemie macOS High Sierra rozwiązało to mój problem:

sudo gem update --system -n /usr/local/bin/gem
Subhan Ahmed
źródło