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
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.
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.
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
-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