Perintah Unix "ln -s" tidak diizinkan di OSX El Capitan Beta3


54

Saya menginstal nodejs untuk Symphony ketika saya menemukan kesalahan "Operasi tidak diizinkan". Adakah yang tahu mengapa ini terjadi?

MacBook-Pro-de-XXX: ~ XXX $ sudo ln -s / usr / local / bin / node / usr / bin / node

Kata sandi:

ln: / usr / bin / node: Operasi tidak diizinkan


1
Pertama periksa apakah / usr / bin / node sudah diatur. Jika Anda ingin mengubahnya, Anda bisa menggunakan ln -sf untuk memaksa symlink.

MacBook-Pro-de-XXX: ~ XXX $ yang mana node / usr / local / bin / node
Kurr0

ls -la / usr / bin / node

MacBook-Pro-de-XXX: ~ XXX $ ls -la / usr / bin / node ls: / usr / bin / node: Tidak ada file atau direktori seperti itu
Kurr0

Jawaban:


70

Ini adalah apa yang disebut mode "rootless" di versi baru OS X. Ini secara efektif membuat direktori sistem tertentu hanya-baca (bahkan untuk admin). "/ usr" adalah salah satu direktori yang dilindungi (satu-satunya subdirektori yang dikecualikan dari aturan ini adalah "/ usr / local")

Seseorang dapat menonaktifkan mode tak menentu ini dengan perintah berikut:

$ sudo nvram boot-args="rootless=0"
$ sudo reboot

Tetapi ini tidak direkomendasikan! Praktik terbaik adalah menginstal hal-hal khusus hanya "/ usr / local".


Pembaruan (27-Okt-15): Rilis Publik 10.11 (El Capitan)

Harap dicatat bahwa solusi yang dijelaskan di atas tidak akan berfungsi dengan rilis publik El Capitan lagi karena Apple telah mengubah keadaan.

Cara yang tepat untuk menonaktifkan mode "rootless" (alias System Integrity Protection, "SIP") adalah mem-boot sementara ke Recover Mode (tahan Command + R saat boot) dan menggunakan csrutil disableperintah (atau csrutil enableuntuk mengaktifkan kembali) dari Terminal. Terminal dapat dijangkau melalui menu Pemasang yang diluncurkan dalam Mode Pemulihan.


2
Mungkin tidak disarankan, tetapi untuk saat ini sepertinya MacTeX mengharapkannya /usr/texbin, jadi mari kita pergi!
David Lord

Memodifikasi NVRAM untuk menonaktifkan mode tidak menentu tidak berfungsi pada El Capitan dari (setidaknya) versi GM ke depan. Periksa jawaban ini untuk metode yang berfungsi dalam versi yang keluar sekarang: stackoverflow.com/questions/32590053/…
Chris Ostmo

Ini tidak berhasil untuk saya juga.
gsscoder

1
masih memberi sayaOperation not permitted
Sinux

2
Solusi saya adalah menginstal ke / usr / local / bin
anon58192932

-2

Dalam versi saya El Capitan /bindirektori tidak ada:

/usr/local/bin

Jadi, perbaikannya adalah:

mkdir -p /usr/local/bin

The -pbendera akan membuat dir (dan kebetulan saja dirs di jalur penuh) jika tidak ada.

Kemudian Anda dapat membuat symlink & salin aplikasi ke /usr/local/binkarena /usr/localbukan bagian dari mode "rootless".


Itu tidak membantu untuk menyelesaikan masalah. Terkadang Anda hanya perlu symlink di / usr / bin dan tidak bisa menghindarinya.
Dmitri
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.