Saya tidak dapat menginstal dan menjalankan fakes3
permata di El Capitan Beta 5.
Saya mencoba:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Kemudian saya mencoba melakukannya dengan cara cocoapods. Ini bekerja untuk cocoapods tetapi tidak untuk palsu3.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
sudo
untuk menginstal Ruby, atau mengubah permata. Alih-alih menggunakan rbenv atau RVM untuk menginstal dan mengelola Ruby. Baca dan ikuti petunjuk di situs masing-masing. Dan, dalam kedua kasus, setelah menginstal, jangan gunakansudo
kecuali Anda mengerti apa yang berubah dan mengapa Anda ingin melakukannya.Jawaban:
Penafian: @theTinMan dan pengembang Ruby lainnya sering menunjukkan tidak digunakan
sudo
saat memasang permata dan menunjuk ke hal-hal seperti RVM . Itu benar sekali ketika melakukan pengembangan Ruby. Silakan dan gunakan itu.Namun, banyak dari kita hanya ingin beberapa biner yang terjadi untuk didistribusikan sebagai permata (misalnya
fakes3
,cocoapods
,xcpretty
...). Saya jelas tidak ingin repot-repot mengelola ruby terpisah. Berikut ini opsi yang lebih cepat:Opsi 1: Tetap menggunakan sudo
Penggunaan
sudo
mungkin baik jika Anda ingin alat ini diinstal secara global.Masalahnya adalah bahwa binari-binari ini diinstal ke dalam
/usr/bin
, yang terlarang sejak El Capitan. Namun, Anda dapat menginstalnya/usr/local/bin
sebagai gantinya. Di situlah Homebrew menginstal barang-barangnya, jadi mungkin sudah ada.Permata akan diinstal ke dalam
/usr/local/bin
dan setiap pengguna di sistem Anda dapat menggunakannya jika ada di PATH mereka .Opsi 2: Instal di direktori home Anda (tanpa sudo)
Berikut ini akan menginstal permata
~/.gem
dan memasukkan binari~/bin
(yang kemudian Anda tambahkan ke AndaPATH
).Jadikan sebagai default
Bagaimanapun, Anda dapat menambahkan parameter ini ke Anda
~/.gemrc
sehingga Anda tidak harus mengingatnya:yaitu
echo "gem: -n/usr/local/bin" >> ~/.gemrc
atau
yaitu
echo "gem: --user-install -n~/bin" >> ~/.gemrc
( Kiat: Anda juga dapat melempar masuk
--no-document
untuk melewati pembuatan dokumentasi pengembang Ruby.)sumber
gem install
memecahkan masalah..gemrc
harus memilikigem: -n /usr/local/bin
(membutuhkan ruang setelah -n).Dalam kasus saya, saya harus menginstal ulang Ruby menggunakan Brew . Itu tampaknya telah memecahkan masalah karena saya dapat menginstal permata lagi.
Setelah ini, Anda harus keluar dan masuk kembali, baik secara grafis atau hanya me-restart terminal Anda.
sumber
brew install ruby
meletakkannya di sana, bahkan jika sudah ada di sana. Agaknya ruby di / usr / local dikonfigurasikan untuk menginstal gem-nya di lokasi yang tidak memerlukan akses root (yang masuk akal sebenarnya).gem install
masih akan gagal.rehash
untuk memastikan shell Anda menyadari bahwa ada yang baruruby
sebelumnya di$PATH
. Bahkan ini tidak akan diperlukan dalam situasi di mana Anda belum berlariruby
di sesi shell.Itu karena fungsi keamanan baru OS X "El Capitan". Coba tambahkan
--user-install
alih-alih menggunakan sudo:Misalnya, jika Anda ingin menginstal fake3 gunakan saja:
sumber
Coba ini. Ini pasti akan berhasil.
sumber
Anda harus memperbarui Xcode ke yang terbaru (v7.0.1) dan semuanya akan berfungsi seperti biasa.
Jika setelah Anda menginstal Xcode terbaru dan masih tidak berfungsi cobalah untuk menginstal permata dengan cara ini:
Sebagai contoh:
sumber
Sepertinya ketika meningkatkan ke OS X El Capitain, direktori / usr / local dimodifikasi dalam beberapa cara:
[Sunting] Ada juga hal awal yang harus dilakukan: tingkatkan Xcode ...
Solusi untuk # 1:
Ini akan memperbaiki izin pada
/usr/local
direktori yang kemudian akan membantu keduanyagem install
danbrew install|link|...
perintah berfungsi dengan baik.Solusi untuk # 2:
Masalah berbasis Ruby
Pastikan Anda telah memperbaiki izin
/usr/local
direktori (lihat # 1 di atas)Pertama-tama coba instal ulang permata Anda menggunakan:
Perhatikan bahwa itu akan menginstal versi terbaru dari permata yang ditentukan.
Jika Anda tidak ingin menghadapi masalah kompatibilitas ke belakang, saya sarankan Anda pertama kali menentukan versi permata mana yang ingin Anda dapatkan dan kemudian instal ulang dengan
-v version
. Lihat contoh di bawah ini untuk memastikan bahwa sistem tidak akan mendapatkan versi baru dari capistrano.Masalah berbasis bir
Perbarui minuman dan tingkatkan formula Anda
Anda mungkin juga perlu menautkan kembali beberapa dari mereka secara manual
sumber
Seperti yang telah dikatakan, masalah ini berasal dari fungsi keamanan Mac OSX sejak "El Capitan".
Menggunakan sistem default Ruby, proses instalasi terjadi di
/Library/Ruby/Gems/2.0.0
direktori yang tidak tersedia bagi pengguna dan memberikan kesalahan.Anda dapat melihat parameter lingkungan Ruby Anda dengan perintah
Ada DIREKTUR INSTALASI dan DIREKTUR INSTALASI PENGGUNA. Untuk menggunakan direktori instalasi pengguna alih-alih direktori instalasi default, Anda dapat menggunakan
--user-install
parameter sebagai gantinya menggunakansudo
yang tidak pernah merupakan cara yang disarankan untuk dilakukan.Seharusnya tidak ada masalah hak lagi dalam proses. Permata kemudian diinstal di direktori pengguna:
~/.gem/Ruby/2.0.0/bin
Tetapi untuk membuat permata yang terpasang tersedia, direktori ini harus tersedia di jalur Anda. Menurut faq Ruby , Anda dapat menambahkan baris berikut ke
~/.bash_profile
atau~/.bashrc
Kemudian tutup dan muat ulang terminal Anda atau muat ulang Anda
.bash_profile
atau.bashrc
(. ~/.bash_profile
)sumber
Ini adalah solusi yang saya gunakan:
Catatan: perbaikan ini untuk kompas seperti yang saya tulis pada pertanyaan SO lainnya, tapi saya telah menggunakan proses yang sama untuk mengembalikan fungsionalitas ke semua proses terminal, jelas permata yang Anda instal berbeda, tetapi prosesnya sama.
Saya memiliki masalah yang sama. Ini karena Apple menerapkan System Integrity Protection (SIP). Anda harus terlebih dahulu menonaktifkan itu ...
Reboot dalam mode pemulihan:
Nyalakan ulang dan tahan Command + R hingga Anda melihat logo apel.
Setelah boot pilih Utilities> Terminal dari bar atas.
Tipe:
csrutil disable
lalu ketik:
reboot
Setelah reboot
Buka terminal cadangan dan masukkan perintah:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
Permata individual yang gagal harus diperbaiki, jadi untuk masing-masing lakukan hal berikut:
Di mesin saya ini adalah ketergantungan pertama yang tidak berfungsi jadi saya mendaftar :
sudo gem pristine ffi --version 1.9.3
Lanjutkan melalui daftar permata yang perlu diperbaiki. Dalam semua yang Anda cari sekitar 10 menit untuk memperbaikinya, tetapi Anda akan memiliki perintah terminal untuk kompas bekerja.
Tangkapan layar
sumber
Jika permata yang Anda coba pasang membutuhkan pustaka xml, cobalah ini:
Secara khusus, saya mengalami masalah saat menginstal permata nokogiri v 1.6.8 pada OS X El Capitan
dan ini akhirnya berhasil untuk saya:
Untuk memastikan Anda telah menginstal libxml2 dan libxslt, Anda dapat melakukan:
dan kemudian periksa untuk memastikan Anda memiliki alat baris perintah xcode diinstal:
harus mengembalikan kesalahan ini:
sumber
Menginstal ulang RVM berfungsi untuk saya, tetapi saya harus menginstal ulang semua permata saya sesudahnya:
sumber
Saya mengalami masalah yang sama setelah menginstal El Capitan, saya mencoba menginstal sass dan kompas ke proyek symfony, perintah berikut mengembalikan kesalahan berikut:
$ sudo gem instal kompas
GALAT: Kesalahan saat memasang kompas: GALAT: Gagal membangun ekstensi bawaan permata.
memeriksa ffi.h ... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': Kompiler gagal menghasilkan file yang dapat dieksekusi. (RuntimeError)
Jadi saya kemudian mencoba menginstal sass dengan: $ sudo gem install sass
Mendapat pesan kesalahan yang sama, setelah beberapa googling saya berhasil menginstal sass menggunakan perintah berikut:
$ sudo gem install -n / usr / local / bin sass
Di atas bekerja untuk saya dengan menginstal sass tetapi tidak berfungsi untuk menginstal kompas. Saya membaca bahwa seseorang di suatu tempat telah membuka instance xcode lalu menutupnya lagi, lalu berhasil menjalankan perintah yang sama setelah itu berhasil untuk mereka. Saya mencoba membuka xcode tetapi diminta dengan pesan yang mengatakan bahwa versi xcode yang diinstal tidak kompatibel dengan El Capitan. Jadi saya kemudian memperbarui xcode dari app store, menjalankan kembali perintah berikut yang kali ini berhasil dijalankan:
$ sudo gem install -n / usr / local / bin kompas
Saya kemudian dapat menjalankan $ kompas init
Saya sekarang memiliki semua permata saya bekerja dan dapat melanjutkan untuk membangun beberapa barang bagus :)
sumber
Saya
rm -rf ./vendor
kemudian harus berlaribundle install
lagi.sumber
Saya tidak suka memasang barang dengan sudo. setelah Anda mulai dengan sudo Anda tidak bisa berhenti ..
coba berikan izin ke direktori Permata.
sumber
Itu akan memberikan izin kembali (Homebrew menginstal ruby di sana)
sumber