好的,我使用cinst nodejs
Which 安装 NodeJS 到 Chocolatey bin 目录中,并依赖 NPM 来安装 NodeJS。
然后我意识到我想要安装 NodeJS.Install,它使用依赖于 NPM 的主 NodeJS 安装将 NodeJS 安装到我的 ProgramFiles 目录中。
我的问题:
现在两者都已安装。当我运行 node 或 NPM 命令时将使用哪一个?如果cuninst nodejs
不起作用,我该如何从 Chocolatey bin 中卸载 NodeJS?
答案1
安装的 nodejs 版本已安装 npm,因此您不需要它。但是删除 nodejs 包是不够的,因为它是一个指向或*.install
包的元包*.commandline
。
请执行以下操作:
- 确保您使用的是较新版本的 choco(0.9.9.x 系列)
choco uninstall npm -dvyaf
choco uninstall nodejs.commandline -dvyaf
这将删除所有版本的 npm 并删除路径上的 bin 文件(shim 重定向)。然后它将删除可移植版本的 nodejs(nodejs.commandline)及其所有版本。这些是强制删除以彻底清理目录。
如果您已经完成其中一些操作,只需进入目录并删除以和%ChocolateyInstall%\lib
开头的文件夹。npm
nodejs.commandline
答案2
好的,我做了一些实验,结果发现,cuninst nodejs
没有完成工作,因为 NodeJS 需要包本身中的 chocolateyUninstall.ps1,而许多当前可用的包都没有。
因此如果我运行以下命令:
巧克力清单 -localonly
我回复说:
curl 7.28.1
...
...
nodejs.命令行 0.10.35
nodejs.安装 0.10.35
npm 1.4.9
我想删除的项目nodejs 0.10.35
是 Chocolatey bin 安装。我想保留其他项目。因此,当我列出我的软件包时,我只使用我看到的名称,nodejs 0.10.35
换句话说:
C:\Windows\System32> cuninst nodejs 0.10.35
现在当我跑步时:
巧克力清单 -localonly
我回复说:
curl 7.28.1
...
...
nodejs 0.10.35
nodejs.commandline 0.10.35
nodejs.install 0.10.35
npm 1.4.9
现在我第一次设置的附加版本已经消失了。它从未设置过 2 个版本的 NPM,因为它是一个依赖项,在我第二次设置 NodeJS.Install 时它已经存在。此外,当我安装了两个版本时,它默认使用巧克力味/垃圾桶版本由于某种原因,不是程序文件版本。我认为这很奇怪。
如果我说的任何内容似乎有误,请随时回答这个问题。我不是 Chocolatey 的高级用户,所以,如果你知道我的答案在某种程度上是错误的,我会检查你的答案,如果它确实纠正了我的答案,我会将其标记为正确