Bla*_*g23 26 package-management apt nodejs npm software-installation
正常安装是sudo apt install nodejs
先安装 Node.js,然后再sudo apt install npm
安装 Node Package Manager。然而,在这样做时,npm -v
说3.5.2
。要正常升级,我会做sudo npm install -g npm
,它更新到最新版本(在撰写本文时为6.0.1
)。
当我执行 a 时which npm
,我得到/usr/local/bin/npm
,但是apt
在/usr/bin/npm
. 如果我sudo apt purge npm
删除 npm,它仍然会将 npm 的 npm 版本保留在/usr/local/bin/npm
,但是npm -v
说-bash: /usr/bin/npm: No such file or directory
.
很多文章都说使用PPA来安装nodejs,但我认为应该有一种通过apt
.
DigitalOcean 关于正常安装和通过 PPA 的安装说明: https : //www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04
通过 PPA 安装的 TecAdmin 说明: https ://tecadmin.net/install-latest-nodejs-npm-on-ubuntu/
kru*_*ubo 54
TLDR:这个问题是由于Bash 缓存了npm
命令的路径引起的,可以通过hash -d npm
. apt purge
除非你愿意,否则你甚至不需要处理。
这是我npm
在 Ubuntu 上获取新版本的步骤。首先,按照 OP 描述进行安装:
$ sudo apt-get install npm
(...apt installation of npm was successful...)
$ npm -v
3.5.2
$ command -v npm
/usr/bin/npm
$ sudo npm install -g npm
(...npm installation of npm was successful...so far, so good)
Run Code Online (Sandbox Code Playgroud)
你可以看到,新版本已经在工作的罚款/usr/local/bin/npm
,但不幸的是,猛砸缓存仍然有/usr/bin/npm
:
$ /usr/local/bin/npm -v
6.4.1
$ npm -v
3.5.2
$ command -v npm
/usr/bin/npm
$ type npm
npm is hashed (/usr/bin/npm)
Run Code Online (Sandbox Code Playgroud)
要解决此问题,请从 Bash 缓存中清除它(在所有打开的 shell 中执行此操作):
$ hash -d npm
Run Code Online (Sandbox Code Playgroud)
现在新版本可以正常工作:
$ npm -v
6.4.1
$ command -v npm
/usr/local/bin/npm
Run Code Online (Sandbox Code Playgroud)
Bla*_*g23 12
我发现的方法是通过 清除 npm sudo apt purge npm
,然后通过ln -s /usr/local/bin/npm /usr/bin/npm
. 修复后,按预期npm -v
返回6.0.1
。
归档时间: |
|
查看次数: |
30950 次 |
最近记录: |