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ć?


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:



479

użyj -nparametru do instalacji jak dla cocoapods:

sudo gem install cocoapods -n /usr/local/bin

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ę!


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.


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.


6

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

sudo gem install rails --pre

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.


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

-2

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

sudo gem update --system -n /usr/local/bin/gem
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.