Bagaimana cara memperbaiki kesalahan "Anda tidak memiliki izin menulis ke direktori / usr / bin" saat menginstal Rails?

133

Saya mencoba menginstal Rails 3 pada MacBook Pro baru yang menjalankan OS X 10.6.3, Ruby 1.8.7, dan Rails 2.3.5 dan saya bertanya-tanya apakah saya telah menyemprot diri sendiri. Sejauh ini, saya telah menjalankan perintah ini:

$ 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

Namun, ketika saya menjalankan perintah terakhir, saya mendapatkan kesalahan ini:

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

Saya pikir ia ingin saya menjalankan perintah dengan sudosehingga dapat menimpa /usr/bin/rails. Tetapi jika saya melakukan itu, bukankah saya akan menimpa Rails 2.3.5 saya yang dapat dieksekusi? Saya tidak ingin melakukan itu. Sebaliknya, saya ingin mempertahankan kedua versi Rails. Bagaimana aku melakukan itu?

sinar
sumber
5
Saya mendapatkan kesalahan yang sama pada perintah pertama, gunakan perintah inisudo gem update --system -n /usr/local/bin
nitish005
1
Apa -n?
Scott Romack
Hanya akan meletakkannya di sini bahwa hanya dengan memulai ulang terminal sudah menyelesaikan masalah ini untuk saya.
ashwood

Jawaban:

14

Saya sarankan menggunakan RVM karena memungkinkan Anda memiliki beberapa versi Ruby / Rails yang diinstal dengan profil permata dan pada dasarnya menyimpan semua permata Anda dari satu sama lain. Anda mungkin ingin melihat posting serupa Bagaimana cara menginstal Ruby on Rails 3 di OSX

Tarellel
sumber
hanya melakukan itu memecahkan bagi saya masalah yang sama dengan pesan kesalahan yang sama
Rich Stone
481

gunakan -nparameter untuk menginstal seperti untuk cocoapods:

sudo gem install cocoapods -n /usr/local/bin
Pradeep Kachhawaha
sumber
7
Mengapa kita membutuhkan ini?
nenchev
28
Gagal di MacOS kecuali Anda menentukan -n / usr / local / bin. Terima kasih atas solusinya
Sacky San
3
Apa artinya -n?
allenlinli
7
menurut guide.rubygems.org/command-reference/#gem-install , -n menentukan direktori tempat binari berada. Saya juga membutuhkan -n /usr/local/bindi Mac saya. Saya berlari which poduntuk menentukan lokasinya yang ada sebelum menggunakan opsi -n yang memang / usr / local / bin
mwu
3
Saya yakin RVM bagus, tapi ini adalah jawaban yang lebih baik yang langsung mengatasi masalah langsung tanpa mengirim saya ke lubang kelinci.
Wayne
62

Menggunakan flag -n / usr / local / bin berfungsi, TAPI saya harus kembali ke halaman ini setiap kali saya ingin memperbarui paket lagi. Jadi saya menemukan perbaikan permanen untuk ini.

Bagi mereka yang tertarik untuk memperbaikinya secara permanen :

Buat file ~ / .gemrc

vim .gemrc

Dengan konten berikut:

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

Sekarang Anda dapat menjalankan perintah Anda secara normal tanpa tanda -n.

Nikmati!

Francois Nadeau
sumber
vim .gemrccara menulis cmd ini
Chandni
Saya tidak yakin ini akan berhasil di Window $, tapi saya rasa Anda bisa menggunakan Notepad.
Francois Nadeau
Terima kasih, sama seperti Anda, saya lelah mencari sufiks ini setiap kali saya perlu melakukan pembaruan!
Paul-Etienne
51
sudo gem install cocoapods --pre -n /usr/local/bin

Ini berhasil untuk saya.

tong Xu
sumber
Saya mengalami masalah ini dan jawaban ini berhasil untuk saya! Saya menggantinya cocoapodsdengan ketergantungan yang saya butuhkan
chris
34

Kamu bisa memakai sudo gem install -n /usr/local/bin cocoapods

Ini berhasil untuk saya.

Damini
sumber
6

Untuk memperbaiki kesalahan spesifik Anda, Anda perlu menjalankan perintah itu sebagai sudo, yaitu:

sudo gem install rails --pre
Andrew Nesbitt
sumber
1
TIDAK. Gunakan rvm atau rbenv ... jangan hanya sudo.
doublejosh
5

Kesalahan ini menyerang saya setelah menginstal RVM dengan benar. Solusi: boot ulang Terminal.

Referensi tutorial Instalasi RVM RailsCast .

Akorn
sumber
Tidak tepat 7 tahun kemudian, tetapi ini juga berfungsi jika Anda bekerja pada subsistem windows bash. Keluar saja dari bash dan luncurkan lagi. Terima kasih.
Pedro Madrid
0

Bagi saya, sesuatu yang berbeda berhasil, yang saya temukan pada jawaban ini dari pertanyaan serupa. Mungkin tidak akan membantu OP, tapi mungkin seseorang seperti saya yang memiliki masalah serupa.

Anda memang harus menggunakan rvm , tetapi karena tidak ada yang menjelaskan kepada Anda bagaimana melakukan ini tanpa rvm , ini dia:

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
sumber
-2

Di macOS High Sierra, ini menyelesaikan masalah saya:

sudo gem update --system -n /usr/local/bin/gem
Subhan Ahmed
sumber