首页 文章

无法将模块安装为全局变量 - / usr / bin / env不是目录

提问于
浏览
1

我正在尝试安装node.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是一个目录) .

我有点失落,并希望有关如何将模块安装为工作全局变量或是否有另一种方法来运行模块而不将其作为全局变量安装的建议 .

1 回答

  • 1

    如果node.js二进制文件( node )未在任何地方安装在$ PATH中,则会发生这种情况 .

    如果你自己运行 env node ,你会得到同样的错误 . 看起来这可能是一个Ubuntu错误:https://github.com/joyent/node/issues/3911

    试试 sudo ln -s /usr/bin/nodejs /usr/bin/node - 这会将名称Ubuntu中的node.js二进制文件符号链接到它应该具有的名称 .

    编辑:正如mscdex在评论中指出的(并且在我链接的bug的末尾提到),你可以安装一个遗留软件包来创建这个符号链接 .

    sudo apt-get install nodejs-legacy

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

    您可能还需要遵循NPM modules won't install globally without sudo中的建议 .

相关问题