Mac OS: / usr / bin / env: плохой интерпретатор: операция запрещена - PullRequest
35 голосов
/ 31 марта 2012

Я пытаюсь запустить этот скрипт в Mac OS 10.7 (Lion) и получаю сообщение об ошибке:

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

Я успешно запустил этот скрипт на других моих компьютерах Mac. Это просто этот скрипт , загруженный и неизмененный из Daring Fireball.

Я нашел этого человека с очень похожей проблемой, но был принят ответ, что в файловой системе была опция noexe при монтировании. Я почти уверен, что это не так для меня, потому что я только что получил его в / usr / local / bin /, и другие вещи там работают нормально (он также не запускается из других мест или как другие пользователи, включая root) .

$ which bbcolors
/usr/local/bin/bbcolors
$ ls -l /usr/local/bin/bbcolors 
-rwxr-xr-x@ 1 nick  staff  9751 Mar 30 19:09 /usr/local/bin/bbcolors

Это Perl-скрипт, а не скомпилированный двоичный файл, не то чтобы это имело значение. Вот дополнительная информация о том, что это стоит:

$ 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

Ответы [ 4 ]

62 голосов
/ 31 марта 2012

Вы случайно открыли / сохранили файл в TextEdit?

Это может ввести метаданные файловой системы (атрибут карантина) , ведущий к описанному вами симптому .

Попробуйте:

xattr -l /usr/local/bin/bbcolors

и

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

, если вы видите атрибут карантина.

13 голосов
/ 20 декабря 2012

ответ pilcrow правильный, однако я обращаю ваше внимание на тот факт, что если вы работаете с образом диска, проблема может быть очень запутанной, поскольку атрибут com.apple.quarantine, похоже, унаследован от файла образа диска. к файлам внутри (спасибо febeling на форумах Apple dev за то, что заметил это!).

Чтобы решить эту проблему, вы должны удалить атрибут карантина из образа диска:

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

, а затем извлеките и снова установите образ диска. Тогда ваши файлы снова будут чистыми.

5 голосов
/ 13 ноября 2012

Я решил эту проблему. Откройте командный файл с помощью TextEdit и сохраните его.

Подробнее: Разрешенная операция не разрешена

0 голосов
/ 31 марта 2012
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted

Существует ли /usr/bin/env? Вы можете запустить его? Запустите его самостоятельно, он должен сбросить ваши переменные окружения в стандартный вывод.

Вы можете смело заменять:

#!/usr/bin/env perl

Полный путь к вашему perl двоичному файлу, например:

#!/usr/bin/perl
...