Mac OS: / usr / bin/ env: mauvais interprète: opération interdite

j'essaye d'exécuter ce script sur Mac OS 10.7 (Lion) et j'obtiens l'erreur:

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

j'ai réussi à lancer ce script sur D'autres Macs. C'est juste ce script téléchargé et non modifié de Daring Fireball.

j'ai trouvé cette personne avec un problème très similaire mais la réponse acceptée était que le système de fichiers avait une option "noexe" sur mount. Je suis sûr que ce n'est pas le cas pour moi parce que je viens de l'avoir dans /usr/local/bin/ et d'autres choses là-bas fonctionne bien (il ne fonctionne pas non plus à partir d'autres endroits ou comme d'autres utilisateurs, y compris 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

c'est un script Perl pas un binaire compilé, pas que ça devrait avoir de l'importance. Voici quelques informations supplémentaires pour ce qu'il vaut:

$ 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
28
demandé sur Community 2012-03-31 06:55:08

4 réponses

est-ce que vous avez ouvert/sauvegardé le fichier dans TextEdit?

qui peut introduire des métadonnées de système de fichiers (attribut de quarantaine) conduisant au symptôme que vous décrivez .

, Essayez:

xattr -l /usr/local/bin/bbcolors

et

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

si vous voyez l'attribut de quarantaine.

49
répondu pilcrow 2012-03-31 03:21:55

pilcrow la réponse est correcte, cependant, j'attire votre attention sur le fait que si vous travaillez avec une image de disque, le problème peut être très déroutant, comme le com.Apple.l'attribut de quarantaine semble être hérité du fichier d'image de disque aux fichiers à l'intérieur (merci à febeling à Apple dev forums pour avoir remarqué cela!).

pour résoudre le problème, vous devez supprimer l'attribut de quarantaine de l'image du disque:

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

et ensuite éjecter et remonter l'image du disque. Alors vos fichiers seront à nouveau propres.

12
répondu KPM 2013-01-08 16:11:58

j'avais résolu ce problème.Ouvrez le fichier de commande avec TextEdit puis enregistrez-le.

complément D'information: opération résolue non autorisée

4
répondu Javen.Yang 2012-11-13 02:44:39
-bash: /usr/local/bin/bbcolors: /usr/bin/env: bad interpreter: Operation not permitted

Existe-t-il /usr/bin/env ? Pouvez-vous courir? Lancé par lui-même, il devrait décharger vos variables d'environnement sur stdout.

vous pouvez remplacer en toute sécurité:

#!/usr/bin/env perl

avec le chemin complet vers votre perl binaire de choix, E. g:

#!/usr/bin/perl
1
répondu larsks 2012-03-31 03:05:23