browserify error /usr/bin/env: node: No such file or directory
Posted
技术标签:
【中文标题】browserify error /usr/bin/env: node: No such file or directory【英文标题】: 【发布时间】:2014-01-20 02:15:15 【问题描述】:我通过 apt-get install 和所有依赖安装了 node js 和 npm,然后我安装了 browserify
npm install browserify -g
它通过了这个过程,看起来它安装正确,但是当我尝试按照这个walkthrough做一个简单的包时
我得到错误:
/usr/bin/env: 节点:没有这样的文件或目录
【问题讨论】:
hmm 您应该检查节点可执行文件是否在 /usr/bin 或 /usb/bin/env 中,至少这是一个特定于操作的问题。您可以通过本地安装 browserify 来解决此问题。 我的 browserfy 可执行文件位于 /usr/local/bin/ 中,但它是否调用了其他东西,导致路径混乱? 啊,您必须将 nodejs 符号链接到 ubuntu 上的节点。 Ubuntu 将 node 安装为 nodejs,然后您必须执行类似“ln -s /usr/bin/nodejs /usr/bin/node”之类的操作,以便系统也将其找到为 node 解决了它:-P 过去一个小时我一直在为这个问题头疼,你能输入答案格式来接受吗? 很高兴它起作用了不确定是否真的是这个问题,这就是我首先发表评论的原因:) 【参考方案1】:一些 linux 发行版安装 nodejs 不是作为“node”可执行文件,而是作为“nodejs”。
在这种情况下,您必须手动链接到“node”,因为许多软件包是在“node”二进制文件之后编写的。未链接到“python”的“python2”也会发生类似的情况。
在这种情况下,您可以做一个简单的符号链接。对于将软件包二进制文件安装到/usr/bin
的 linux 发行版,您可以这样做
ln -s /usr/bin/nodejs /usr/bin/node
【讨论】:
这不是 Ubuntu 14.04 的解决方案,因为/usb/sbin/node
是ax24-node(与nodejs 无关)。只是符号链接到/usr/bin/node
将不起作用,因为/usr/sbin/node
在$PATH
中排在第一位
解决这个问题的正确方法是使用update-alternatives
。在这里查看我的答案***.com/a/24592328/454615
实际上考虑更多...如果你想破坏你的系统,像这样对二进制文件进行符号链接是一个很好的习惯。
是的,我注意到它确实以微妙的方式破坏了它,你找到更好的解决方案了吗?
@EduardoDennis 是的,使用update-alternatives
。它存在于这些确切的情况。【参考方案2】:
新答案:
-
卸载您通过系统包管理器(dnf、apt-get 等)安装的所有 nodejs 包,删除您在每次升级时重新创建的所有愚蠢的符号链接(大声笑)。
安装 NVM,
使用nvm安装nodejs:nvm install 6
旧答案:
任何关于创建符号链接或安装其他节点包的言论都是虚假的,不可持续的。
解决这个问题的正确方法是:
-
使用 apt-get 简单地安装 nodejs 包,就像你已经拥有的一样
使用
update-alternatives
表示您的nodejs 二进制文件负责#!/usr/bin/env node
像这样:
sudo apt-get install nodejs
sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100
这在包升级、dist 升级等过程中变得可持续。
【讨论】:
这是我的问题的解决方案***.com/questions/26155795/… 谢谢,很好的解决方案,符号链接的技巧是网络上重复次数最多的技巧,但对我没有用。 现在真正的正确答案是在Linux上使用NVM,在Windows上使用Nodist。【参考方案3】:运行apt-get install nodejs-legacy
。
某些 Linux 发行版更改了 node.js 二进制名称,使其与许多 node.js 包不兼容。包nodejs-legacy
提供了一个符号链接来解决这个问题。
【讨论】:
这是 Ubuntu 14.04 的解决方案,因为/usb/sbin/node
是 ax24-node(与 nodejs 无关)。只是符号链接到/usr/bin/node
将不起作用,因为/usr/sbin/node
在$PATH
中排在第一位
帮了我一把。谢谢!
apt-get 安装 nodejs-legacy。表示 Windows 用户 'apt-get' 不是内部或外部命令、可运行程序或批处理文件。【参考方案4】:
您还可以使用 NVM 或 Nodejs 版本管理器 安装 Nodejs。使用版本管理器有很多benefits。其中之一是您不必担心这个问题。
说明:
sudo apt-get update
sudo apt-get install build-essential libssl-dev
安装必备软件包后,您可以从项目的 GitHub 页面下载 nvm 安装脚本。版本号可能不同,但一般情况下,可以使用以下语法下载安装:
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
这将下载脚本并运行它。它会将软件安装到您的主目录的子目录~/.nvm
。它还会将必要的行添加到您的 ~/.profile
文件中以使用该文件。
要访问 nvm 功能,您需要注销并重新登录,或者您可以获取 ~/.profile 文件,以便您当前的会话知道更改:
source ~/.profile
现在您已经安装了 nvm,您可以安装独立的 Node.js 版本。
要找出可供安装的 Node.js 版本,您可以键入:
nvm ls-remote
. . .
v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14
如您所见,撰写本文时的最新版本是 v0.11.14。您可以通过键入以下内容进行安装:
nvm install 0.11.14
通常,nvm 会切换到使用最近安装的版本。您可以通过键入以下内容明确告诉 nvm 使用我们刚刚下载的版本:
nvm use 0.11.14
当您使用 nvm 安装 Node.js 时,可执行文件称为 node。您可以通过键入以下内容来查看 shell 当前使用的版本:
node -v
完整教程可以在here找到
【讨论】:
是的,还有一个用于环境版本管理器。尽管我们都是正确的方法,但绝对是比我更好的答案。我会说 nvm 更针对交互式工作站而不是生产服务器(但我不明白为什么不能在那里使用它)......我个人更倾向于在生产中使用 docker 图像。【参考方案5】:sudo apt-get install nodejs-legacy
这将创建符号链接/usr/bin/node -> nodejs
。
来源:https://lists.debian.org/debian-devel-announce/2012/07/msg00002.html
【讨论】:
@Swift Mac OS X 没有 apt-get。见***.com/questions/37369363/…【参考方案6】:当我在 Linux 中构建 atom 时,我似乎遇到了同样的问题。
sudo apt-get install nodejs-dev
解决我的问题。希望对你有帮助。
【讨论】:
【参考方案7】:如果您不想符号链接,您可以这样做。 在 ubuntu 中工作
#!/usr/local/bin/node --harmony
和谐标签用于新的 ECMAscript 和谐
【讨论】:
【参考方案8】:运行命令which node
结果会是什么
/home/moh/.nvm/versions/node/v8.9.4/bin/node
复制上面的路径,然后运行步骤 3 中的命令。
ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node
【讨论】:
【参考方案9】:您必须调用“nodejs”而不是“node”。要验证这一点,请在 shell 上键入 node -v
:如果没有找到,请尝试 nodejs -v
。如果显示的是版本号,那么您应该使用的命令是nodejs
而不是node
。因此,您必须将脚本中对 browserify 的调用从 node
更改为 nodejs
(如下所示):替换
#!/usr/bin/env node
与
#!/usr/bin/env nodejs
您可能还必须以超级用户身份打开脚本。
【讨论】:
以上是关于browserify error /usr/bin/env: node: No such file or directory的主要内容,如果未能解决你的问题,请参考以下文章
E: Sub-process /usr/bin/dpkg returned an error code
CentOS7 docker报错 /usr/bin/docker-current: Error response from daemon: oci runtime error(需要禁用SELinux)
CentOS7 docker报错 /usr/bin/docker-current: Error response from daemon: oci runtime error(需要禁用SELinux)
E: Sub-process /usr/bin/dpkg returned an error code
/usr/bin/perl: symbol lookup error: xxxxx: undefined symbol: Perl_xs_handshake
/usr/bin/perl: symbol lookup error: xxxxx: undefined symbol: Perl_xs_handshake