#在/ usr/bin中/ env的:没有这样的文件或目录
问题描述:
的家当线在我bin/www
文件是:#在/ usr/bin中/ env的:没有这样的文件或目录
pi:~/ferc$ head -n 1 bin/www
#!/usr/bin/env node
然而,执行它:
pi:~/ferc$ bin/www
bin/www: line 1: #!/usr/bin/env: No such file or directory
的env
文件不存在:
pi:~/ferc$ ls -lL /usr/bin/env
-rwxr-xr-x 1 root root 31408 Feb 18 2016 /usr/bin/env
的node
文件还存在:
pi:~/ferc$ ls -al /usr/bin/node
lrwxrwxrwx 1 root root 15 Jul 7 18:29 /usr/bin/node -> /usr/bin/nodejs
而且node
运行正常:
pi:~/ferc$ node -v
v4.2.6
是什么错误消息究竟意味着什么?它抱怨哪个文件?
答
的原因是一个已损坏的文件,可能是由于LF和CF/LF行结束在混合文件。
发生了什么事是:
- 我从Windows PC到AWS EC2实例的Ubuntu复制的文件。
- 我第一次跑了WWW文件,即相同的错误消息出现。在这一点的原因很可能是
node
可执行文件并不存在。我还没有创建符号链接。 - 虽然试图解决问题,我编辑,并使用纳米保存在WWW文件。我认为此时文件已损坏。
- 后来,我加入了符号链接的/ usr/bin中/节点。但是,同样的错误仍然存在,但可能是由于损坏的行尾。
- 我
dos2unix
www的文件,和错误走了。
答
您可以使用节点直接,如:
#!/usr/bin/node
什么'这node'说? –
错误消息意味着它试图执行名为“#!/ usr/bin/env”的文件并失败。我认为'bin/www'的第一行以某种方式损坏,并且它不被识别为shebang。 – Kenster
@Kenster,谢谢你的提示。我通过'dos2unix'运行了文件,错误消失了。 –