无法在Ubuntu中使用节点包管理器安装包
Ubuntu上的nodejs
解释程序名称( node
)已重命名为nodejs
因为名称与其他程序包有冲突。 以下是readme.debian所说的内容:
Node.js解释器命令的上游名称是“节点”。 在Debian中,解释器命令已更改为“nodejs”。
这是为了防止命名空间冲突:其他命令在其上游使用相同的名称,例如“节点”包中的ax25-node。
调用Node.js作为shell命令的脚本必须改为使用“nodejs”命令。
但是,使用nodejs会使用npm
来清理安装包。 程序包安装失败并出现以下错误:
sh: 1: node: not found
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
我如何让npm明白系统中已经安装了nodejs,但解释器名称不同?
TL; DR:
sudo apt-get install nodejs-legacy
首先让我澄清一下情况。 在2012年夏季,Debian维护者决定重命名Node.js可执行文件以防止某种名称空间与另一个软件包发生冲突。 对于Debian技术委员会来说,这是非常艰难的决定,因为它会破坏向后兼容性。
以下是Debian邮件列表中发布的委员会决议草案的引用:
应该更改nodejs软件包以提供/ usr / bin / nodejs,而不是/ usr / bin / node。 该软件包应该声明与Debian中引用/ usr / bin / node的任何软件包的Breaks:关系。
nodejs源代码包还应提供包含/ usr / bin / node作为/ usr / bin / nodejs符号链接的Priority:extra的nodejs-legacy二进制包。 档案中的任何软件包都不依赖于或推荐仅为上游提供的nodejs-legacy软件包
兼容性。 这个包声明还应该声明与节点包的冲突:关系。
<...>
第2段是OP问题的实际解决方案。 OP应该尝试安装这个软件包,而不是手动执行符号链接。 这里是Debian软件包索引网站的这个软件包的链接。
它可以使用sudo apt-get install nodejs-legacy
。
我还没有发现关于NPM开发人员采用整个事情的任何信息,但我认为npm
软件包将被固定在某个点上,并且nodejs-legacy
成为真正的传统。
尝试将节点链接到nodejs。 首先找出nodejs在哪里
whereis nodejs
然后到nodejs的软链接节点
ln -s [the path of nodejs] /usr/bin/node
我假设/ usr / bin在您的执行路径中。 然后你可以通过在你的命令行输入node或npm来测试,现在所有的东西都可以工作。
您也可以使用NVM或Nodejs版本管理器来安装Nodejs使用版本管理器有很多好处。 其中之一是你不必担心这个问题。
说明:
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时,可执行文件称为节点。 您可以通过输入以下命令来查看shell正在使用的版本:
node -v
这个补充教程可以在这里找到
链接地址: http://www.djcxy.com/p/4757.html上一篇: Cannot install packages using node package manager in Ubuntu