2012-03-31 9 views
24

मैं मैक ओएस 10.7 (Lion) पर इस स्क्रिप्ट को चलाने के लिए कोशिश कर रहा हूँ और मैं त्रुटि हो रही है:मैक ओएस:/usr/bin/env: बुरा दुभाषिया: कार्रवाई की अनुमति नहीं

$ bbcolors 
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted 

मैं इस स्क्रिप्ट को मेरे अन्य मैक पर सफलतापूर्वक चलाया है। यह सिर्फ this script डाउनलोड और डियरिंग फायरबॉल से अनमोडिफाइड है।

मुझे this person एक बहुत ही समान समस्या के साथ मिला लेकिन स्वीकार्य उत्तर यह था कि फ़ाइल सिस्टम में माउंट पर 'नोएक्स' विकल्प था। मुझे पूरा यकीन है कि मेरे लिए यह मामला नहीं है क्योंकि मुझे इसे अभी/usr/local/bin/में मिला है और वहां अन्य सामग्री ठीक काम करती है (यह अन्य स्थानों या रूट सहित अन्य उपयोगकर्ताओं के रूप में भी नहीं चलती है) ।

$ which bbcolors 
/usr/local/bin/bbcolors 
$ ls -l /usr/local/bin/bbcolors 
[email protected] 1 nick staff 9751 Mar 30 19:09 /usr/local/bin/bbcolors 

यह एक पर्ल स्क्रिप्ट एक संकलित बाइनरी नहीं है, इससे कोई फर्क नहीं पड़ता।

$ cat /usr/local/bin/bbcolors |head -n 1 
#!/usr/bin/env perl 
$ which perl 
/usr/bin/perl 
$ env | grep PATH 
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 
+1

आपने गलत होने के लिए सामान्य आधारों को कवर किया है; बहुत बढ़िया। जब आप 'perl -v' चलाते हैं तो क्या होता है? पर्ल स्क्रिप्ट ('bbcolors') में प्रारंभिक टिप्पणी पंक्तियों के बाद क्या दिखाई देता है?साथ ही, अनुमतियों के बाद '@' का अर्थ है फ़ाइल के लिए कुछ सहायक विशेषता जानकारी है; क्या आपने जांच की है कि वह है (शायद 'ls - @' के साथ)? –

+0

मैंने समस्या को 'xattr -r com.apple.quarantine/file/path' के साथ हल किया है, मैं अपने प्रश्न का उत्तर दूंगा लेकिन मेरे पास कुछ घंटों तक ऐसा करने के लिए पर्याप्त प्रतिनिधि नहीं है। – Nick

+0

'xattr -d com.apple.quarantine/usr/local/bin/bbcolors'? ('-r' का अर्थ है 'रिकर्सिव';' -d' का अर्थ है 'हटाएं'।) मैं भूल जाता हूं कि वह आदेश क्या कहलाता है। –

उत्तर

47

आप खोलना/TextEdit में फ़ाइल सहेजने के लिए ऐसा हुआ था?

जो फाइल सिस्टम मेटाडेटा (क्वारंटाइन विशेषता) leading to the symptom you describe पेश कर सकता है।

प्रयास करें:

xattr -l /usr/local/bin/bbcolors 

और

xattr -d com.apple.quarantine /usr/local/bin/bbcolors 

अगर आप संगरोध विशेषता देखते हैं।

+3

हाँ, मैं अपने स्वयं के प्रश्न का उत्तर नहीं दे सका, लेकिन आपको उपरोक्त मेरी टिप्पणियों में से सही जानकारी मिली है। एफडब्ल्यूआईडब्लू: 'com.apple.quarantine' देखने के लिए फ़ाइल पर' ls -al @ 'करने के लायक भी है। – Nick

+2

हा। मैंने आपकी टिप्पणियां पढ़ने के बिना * समाधान * पाया। वह मुझे अक्सर ताज़ा करने के लिए सिखाएगा। – pilcrow

+0

इसने मेरी समस्या हल की, धन्यवाद –

1
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted 

/usr/bin/env मौजूद है: यहाँ क्या इसके लायक है के लिए कुछ अतिरिक्त जानकारी है? क्या आप इसे चला सकते हैं? अपने आप से चलाएं इसे अपने पर्यावरण चर को stdout पर डंप करना चाहिए।

आप सुरक्षित रूप से जगह ले सकता है:

#!/usr/bin/env perl 
पूर्ण पथ के साथ

अपनी पसंद के perl द्विआधारी, के लिए उदाहरण के लिए:

#!/usr/bin/perl 
4

मैंने इस समस्या का समाधान किया था। टेक्स्ट एडिट के साथ कमांड फ़ाइल खोलें और फिर इसे सेव करें।

अधिक जानकारी: Resolved Operation not permitted

12

pilcrow के जवाब सही है, फिर भी मैं आपका ध्यान इस तथ्य की ओर आकर्षित है कि अगर आप एक डिस्क छवि के साथ काम कर रहे हैं, समस्या बहुत भ्रमित कर सकते com.apple.quarantine विशेषता के रूप में, लगता है कि डिस्क छवि फ़ाइल से फ़ाइलों को अंदर से विरासत में मिला है (यह देखने के लिए febeling at Apple dev forums पर धन्यवाद!)।

समस्या को हल करने के लिए, आप डिस्क छवि से संगरोध विशेषता को दूर करने के लिए है:

xattr -d com.apple.quarantine /path/to/disk/image 

और उसके बाद बेदखल और डिस्क छवि को पुन: माउंट। फिर आपकी फाइलें फिर से साफ हो जाएंगी।

+1

+1 धन्यवाद! आपने मेरा दिन बचाया – ilmiacs

+1

+1 धन्यवाद! मेरा दिन भी बचाया! –

संबंधित मुद्दे