OSX El Capitan Beta3 में Unix "ln -s" कमांड की अनुमति नहीं है


54

जब मैं "ऑपरेशन की अनुमति नहीं देता" त्रुटि मारा तो मैं सिम्फनी के लिए नोडज स्थापित कर रहा था। किसी को पता है कि ऐसा क्यों हुआ?

मैकबुक-प्रो-डी-एक्सएक्सएक्स: ~ एक्सएक्सएक्स $ सुडो एलएन-एसएस / यूएसआर / लोकल / बिन / नोड / यूएसआर / बिन / नोड

पारण शब्द:

ln: / usr / bin / node: ऑपरेशन की अनुमति नहीं है


1
पहले जांचें कि क्या / usr / bin / नोड पहले से सेट है। यदि आप इसे बदलना चाहते हैं, तो आप सिम्लिंक को मजबूर करने के लिए ln -sf का उपयोग कर सकते हैं।

मैकबुक-प्रो-डी-
एक्सएक्सएक्स

ls -ला / usr / बिन / नोड

मैकबुक-प्रो-डी-एक्सएक्सएक्स: ~ XXX $ ls -la / usr / bin / node ls: / usr / बिन / नोड: ऐसी कोई फ़ाइल या निर्देशिका नहीं है
Kurr0

जवाबों:


70

यह ओएस एक्स के नए संस्करण में तथाकथित "रूटलेस" मोड है। यह कुछ सिस्टम निर्देशिकाओं को केवल पढ़ने योग्य बनाता है (यहां तक ​​कि प्रशंसा के लिए भी)। "usr" उन संरक्षित निर्देशिकाओं में से एक है (इस नियम से बाहर की गई एकमात्र उपनिर्देशिका है "/ usr / स्थानीय")

एक निम्नलिखित कमांड के साथ इस रूटलेस मोड को अक्षम कर सकता है:

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

लेकिन यह अनुशंसित नहीं है! सबसे अच्छा अभ्यास केवल "/ usr / स्थानीय" के लिए कस्टम सामान स्थापित करना है।


अपडेट (27-अक्टूबर -15): 10.11 (एल कैपिटन) सार्वजनिक रिलीज़

कृपया ध्यान दें कि ऊपर वर्णित वैकल्पिक हल अब एल कैपिटन के सार्वजनिक रिलीज के साथ काम नहीं करेगा क्योंकि एप्पल ने चीजों को बदल दिया है।

"रूटलेस" मोड (उर्फ सिस्टम इंटीग्रिटी प्रोटेक्शन, "एसआईपी") को निष्क्रिय करने का उचित तरीका अस्थायी रूप से पुनर्प्राप्त मोड (बूट के दौरान कमांड + आर को पकड़ना) में बूट करना है और टर्मिनल से csrutil disableकमांड (या फिर csrutil enableसे उपयोग करने योग्य) का उपयोग करना है । टर्मिनल पुनर्प्राप्ति मोड में लॉन्च होने वाले इंस्टॉलर के मेनू के माध्यम से उपलब्ध है।


2
यह उचित नहीं हो सकता है, लेकिन अभी के लिए MacTeX उम्मीद करता है /usr/texbin, इसलिए हम चले!
डेविड लॉर्ड

रूटलेस मोड को डिसेबल करने के लिए एनवीआरएएम को संशोधित करना एल कैपिटन पर (कम से कम) जीएम संस्करण को आगे बढ़ाने पर काम नहीं करता है। इस विधि के लिए इस उत्तर की जाँच करें जो उस संस्करण में काम करता है जो अभी बाहर है: stackoverflow.com/questions/32590053/…
क्रिस ओस्टमो

यह मेरे लिए भी काम नहीं किया।
gsscoder

1
अब भी मुझे दे दोOperation not permitted
Sinux

2
मेरा वर्कअराउंड / usr / लोकल / बिन
anon58192932

-2

एल Capitan के मेरे संस्करण में /binनिर्देशिका मौजूद नहीं थी:

/usr/local/bin

तो, तय था:

mkdir -p /usr/local/bin

-pझंडा अगर यह मौजूद नहीं है dir (और पूर्ण पथ में संयोग से किसी भी dirs) का निर्माण करेगा।

तब आप "रूटलेस" मोड का हिस्सा नहीं होने के /usr/local/binकारण सीमलिंक और कॉपी ऐप्स बना सकते हैं /usr/local


यह समस्या को हल करने में मदद नहीं करता है। कभी-कभी आपको / usr / bin में सिम्बलिंक की आवश्यकता होती है और इससे बच नहीं सकते।
दिमित्री
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.