Próbuję uruchomić casperjs na Ubuntu 12.04. Po instalacji po uruchomieniu dostaję:
09:20 $ ll /usr/local/bin/casperjs
lrwxrwxrwx 1 root root 26 Nov 6 16:49 /usr/local/bin/casperjs -> /opt/casperjs/bin/casperjs
09:20 $ /usr/bin/env python --version
Python 2.7.3
09:20 $ cat /opt/casperjs/bin/casperjs | head -4
#!/usr/bin/env python
import os
import sys
09:20 $ casperjs
: No such file or directory
09: 22 $ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Python jest więc obecny i działa, casperjs wskazuje właściwe miejsce i jest to skrypt Pythona. Ale kiedy go uruchamiam, pojawia się komunikat „Brak takiego pliku”.
Mogę to naprawić, zmieniając pierwszą linię pliku python casperjs z:
#!/usr/bin/env python
do:
#!/usr/bin/python
Wynik:
$ casperjs --version
1.1.0-DEV
Udało mi się to naprawić, ale zastanawiam się, dlaczego to nie działało #!/usr/bin/env python
, ponieważ wydaje się to normalną linią tłumacza. Czy mam coś źle skonfigurowanego?
Oto kroki, aby uzyskać casperjs:
$ git clone git://github.com/n1k0/casperjs.git
$ cd casperjs
$ ln -sf `pwd`/bin/casperjs /usr/local/bin/casperjs
$ casperjs
: No such file or directory
: No such file or directory
wyjściem, które zawierają próbę wykonania. [edytuj: właśnie zobaczyłem odpowiedź Gillesa. Sprawdź, czy linie na wyjściu strace wyglądają tak execve("/usr/bin/python\r", ...)
. ]
strace /usr/local/bin/casperjs
wersję niedziałającą? Byłoby pomocne, gdybyśmy mogli zobaczyć, które pliki env próbuje wykonać i czy env nie może znaleźć Pythona, czy python nie otwiera skryptu.