Come posso correggere l'errore "Non hai i permessi di scrittura nella directory / usr / bin" durante l'installazione di Rails?


133

Sto cercando di installare Rails 3 su un nuovissimo MacBook Pro con OS X 10.6.3, Ruby 1.8.7 e Rails 2.3.5 e mi chiedo se mi sono lavato da solo. Finora, ho eseguito questi comandi:

$ 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

Tuttavia, quando eseguo l'ultimo comando, ottengo questo errore:

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

Penso che voglia che esegua il comando con in sudomodo che possa sovrascrivere /usr/bin/rails. Ma se lo faccio, non sovrascriverò il mio eseguibile Rails 2.3.5? Non voglio farlo. Invece, vorrei mantenere entrambe le versioni di Rails. Come lo faccio?


5
Ricevo lo stesso errore al primo comando, usa questo comandosudo gem update --system -n /usr/local/bin
nitish005

1
Cos'è -n?
Scott Romack

Sto solo andando a metterlo qui che il semplice riavvio del terminale ha risolto questo per me.
frassino

Risposte:


14

Suggerirei di usare RVM che ti consente di avere più versioni di Ruby / Rails installate con profili gem e fondamentalmente mantenere tutte le tue gemme contenute l'una dall'altra. Potresti voler controllare un post simile Come posso installare Ruby on Rails 3 su OSX


solo farlo ha risolto per me un problema simile con lo stesso messaggio di errore
Rich Stone

481

usa il -nparametro per installare come per cocoapods:

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

7
Perché dovremmo anche aver bisogno di questo?
nenchev

28
Non riesce su MacOS a meno che non specifichi -n / usr / local / bin. Grazie per la soluzione
Sacky San

3
Cosa significa -n?
allenlinli

7
secondo le guide.rubygems.org/command-reference/#gem-install , -n specifica la directory in cui si trovano i binari. Avevo bisogno anche -n /usr/local/binsul mio Mac. Sono corso which poda determinare la sua posizione esistente prima di utilizzare l'opzione -n ​​che era effettivamente / usr / local / bin
mwu

3
Sono sicuro che RVM è ottimo, ma questa è una risposta migliore che affronta direttamente il problema immediato senza mandarmi nella tana del coniglio.
Wayne

62

L'uso del flag -n / usr / local / bin funziona, MA dovevo tornare su questa pagina ogni volta che volevo aggiornare di nuovo un pacchetto. Quindi ho trovato una soluzione permanente per questo.

Per coloro interessati a risolvere questo problema in modo permanente :

Crea un file ~ / .gemrc

vim .gemrc

Con il seguente contenuto:

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

Ora puoi eseguire il tuo comando normalmente senza il flag -n.

Godere!


vim .gemrccome scrivere questo cmd
Chandni

Non sono sicuro che funzionerà in Window $, ma immagino che potresti usare Blocco note.
Francois Nadeau,

Grazie, proprio come te ero stanco di cercare questo suffisso ogni volta che dovevo fare un aggiornamento!
Paul-Etienne

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

Questo funziona per me.


Ho avuto questo problema e questa risposta ha funzionato per me! Ho sostituito cocoapodscon la dipendenza di cui avevo bisogno
chris

34

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

Questo funziona per me.


6

Per correggere il tuo errore specifico devi eseguire quel comando come sudo, ovvero:

sudo gem install rails --pre

1
NO. Usa rvm o rbenv ... non solo sudo.
doublejosh

5

Questo errore mi ha colpito dopo aver installato correttamente RVM. Soluzione: riavvia Terminal.

Fare riferimento al tutorial di installazione RVM di RailsCast .


Non esattamente 7 anni dopo, ma funziona anche se stai lavorando sul sottosistema bash di Windows. Esci dal bash e avvialo di nuovo. Grazie.
Pedro Madrid

0

Per me, qualcosa di diverso ha funzionato, che ho trovato in questa risposta da una domanda simile. Probabilmente non aiuterà OP, ma forse qualcuno come me ha avuto un problema simile.

Dovresti davvero usare rvm , ma poiché nessuno ti ha spiegato come farlo senza rvm , ecco qui:

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

Su macOS High Sierra, questo ha risolto il mio problema:

sudo gem update --system -n /usr/local/bin/gem
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.