将模块安装为全局变量时遇到问题 -- /usr/bin/env 不是目录

Trouble installing a module as a global variable -- /usr/bin/env not a directory

本文关键字:bin usr env 安装 模块 全局变量 问题 遇到      更新时间:2023-09-26

我正在尝试安装节点.js模块"javascripting"(源代码可以找到:https://github.com/sethvincent/javascripting(,并且无法将其安装为全局变量以通过终端运行。

安装

node 后.js我尝试安装带有以下行的 javascripting:npm install --global javascripting

虽然我知道这应该有效,但它只下载模块,但没有将其设置为要在终端中运行的全局变量。

尝试将其作为全局变量运行时收到的错误是"/usr/bin/env:node:没有这样的文件或目录"。

收到此错误后,我尝试将模块从安装的目录(usr/local/lib/node_modules/javascripting(移动到/usr/bin/env。不幸的是,我无法移动文件,因为/usr/bin/env 不是一个目录,而是它似乎是某种可执行的 java 文件(usr/bin 是一个目录(。

我有点迷茫,希望得到一些关于如何将模块安装为工作全局变量的建议,或者是否有另一种方法可以在不将其安装为全局变量的情况下运行模块。

如果节点.js二进制(node(没有安装在$PATH的任何地方,就会发生这种情况。

如果单独运行env node,则会收到相同的错误。看起来这可能是一个 Ubuntu 错误:https://github.com/joyent/node/issues/3911

尝试sudo ln -s /usr/bin/nodejs /usr/bin/node - 这将符号链接节点.js二进制从 Ubuntu 给它的名字到它应该有的名字。

编辑:正如mscdex在评论中指出的那样(正如我链接的错误末尾提到的(,您可以安装一个旧包来创建此符号链接。

sudo apt-get install nodejs-legacy

我上面链接的错误表明 Ubuntu/Debian 的默认节点.js包可能存在其他问题,并建议您从那里提到的 PPA 或源代码安装自己的问题。

您可能需要遵循 NPM 模块在没有 sudo 的情况下不会全局安装中的建议。