2012-03-31 5 views
24

Mac OS 10.7 (Lion) Bu komut dosyasını çalıştırmak çalışıyorum ve ben hatayı alıyorum:Mac OS:/usr/bin/env: Kötü tercüman: İşleme izin verilmedi

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

ben Bu betiği diğer Mac'lerde başarıyla çalıştırıyorum. Sadece Daring Fireball'dan indirilen ve değiştirilmemiş olan this script.

Çok benzer bir sorunla birlikte this person buldum, ancak kabul edilen yanıt, dosya sisteminin bir 'noexe' seçeneğinin bağlantıda olmasıydı. Eminim ki bu benim için de geçerli değil çünkü ben sadece/usr/local/bin/ve diğer şeylerde çalışıyordum (diğer yerlerden veya root dahil diğer kullanıcılardan da çalışmaz) .

$ 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 

Bu bir Perl betiğinin derlenmiş bir ikili değil, önemli olması gerekmiyor.

$ 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

Neyin yanlış olabileceğine dair normal tabanların çoğunu ele aldınız; aferin. Perl -v'yi çalıştırdığınızda ne olur? Perl betiğindeki ('bbcolors') ilk yorum satırlarından sonra görünen nedir?Ayrıca, izinlerden sonra '@', dosya için bazı yardımcı özellik bilgileri olduğu anlamına gelir; Bunun (belki de ls - @ 'ile) olduğunu araştırdınız mı? –

+0

Sorunu 'xattr -r com.apple.quarantine/file/path' ile çözdüm kendi sorumu cevaplayacağım ama birkaç saatliğine yapacak yeterli temsilcim yok. – Nick

+0

'xattr -d com.apple.quarantine/usr/local/bin/bbcolors'? ('-r', 'yinelemeli' anlamına gelir; -d, 'sil' anlamına gelir.) Bu komutun ne çağrıldığını unutmaya devam ediyorum. –

cevap

47

sen/açmak TextEdit dosyayı kaydetmek için mi oldu? Bu, dosya sistemi meta verilerini (karantina niteliği) leading to the symptom you describe tanıtabiliyor.

Dene:

xattr -l /usr/local/bin/bbcolors 

ve

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

Karantina özelliği görürseniz

.

+3

Evet, kendi sorumu cevaplayamadım, ama yukarıdaki yorumlarımdan doğru bilgileri aldınız. FWIW: 'com.apple.quarantine' dosyasını görmek için dosyada 'ls -al @' yapmaya da değer. – Nick

+2

Ha. Bu çözümü * yorumlarınızı okumadan * buldum. Bu bana daha sık yenilememi öğretir. – pilcrow

+0

Bu benim problemimi çözdü, teşekkürler –

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

/usr/bin/env var mı: İşte buna değer ne için bazı ekstra bilgiler verilmiştir? Çalıştırabilir misin? Kendi başına çalışarak ortam değişkenlerinizi stdout'a dökmelisiniz.

güvenle değiştirebilirsiniz: tam yol ile

#!/usr/bin/env perl 

seçtiğiniz perl ikili, için örneğin:

#!/usr/bin/perl 
12

Pilcrow cevabı doğrudur, ancak ben bir disk görüntüsü ile çalışıyorsanız, sorun com.apple.quarantine niteliği olarak, çok kafa karıştırıcı olabilir gerçeğine dikkatinizi çekmek disk imaj dosyasından içerideki dosyalara aktarılmış gibi görünüyor (bunu farkettiğiniz için febeling at Apple dev forums'a teşekkürler!).

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

ve ardından çıkarma ve disk görüntüsünü yeniden bağlayın:

sorunu çözmek için, disk görüntüsünden karantina özelliğini kaldırmak gerekir. Sonra dosyalarınız tekrar temizlenir.

+1

+1 Teşekkürler! Günümü kurtardın. – ilmiacs

+1

+1 Teşekkürler! Benim de günümü kurtardım! –