运行命令node -v
提供以下值:v0.10.33
。我知道Node.js目前的版本是0.12。然而,当运行choco update nodejs
时,提示符显示"没有更新"。在" choco更新npm"。
我已在其网站nodejs.org上的安装包中安装了Node.js. 之后的一段时间我还安装了Chocolatey,并且不时地使用该工具进行封装安装。
是否可以让Chocolatey识别现有的Node.js安装并从那里选择一个choco更新?
我也希望能够以同样的方式从Chocolatey获取npm更新。
我没有最新的Chocolatey。
> choco list --local-only nodejs
Opción desconocida: '--local-only'
nodejs.commandline 0.12.2
npm 1.4.9.20150213
EthanBrown.DevTools.Web 0.3.1
ghost 0.5.5.1
io.js 1.7.1
livestreamer-twitch-gui 0.7.1
nodejs 0.12.2
nodejs.install 0.12.2
node-webkit-0.9.2 0.9.2
node-webkit 0.6.2
Brackets.Theseus 0.2.8
Yeoman 1.1.2
将Chocolatey升级至v0.9.9.4
> choco list --local-only
Chocolatey v0.9.9.4 [nl] 0 packages installed.
我使用npm更新了Node.js.
> node -v
v0.12.2
但是,在版本0.10.33重新安装Node.js后,
> choco install nodejs -version 0.10.33
我无法使用npm
:
无法在' npm.cmd'找到文件(C:\ ProgramData \的巧克力\ lib中\ NPM \工具\ npm.cmd)。这通常表示文件丢失或移动。
我暂时离开它,直到我排除故障。
答案 0 :(得分:4)
另一个选择,假设您已经通过MSI安装了Node.js将运行:
choco install nodejs -version 0.12.2 -y -n
-n参数,如下所示:
https://github.com/chocolatey/choco/wiki/CommandsInstall#options-and-switches
跳过与Chocolatey包关联的PowerShell脚本。这实质上是将软件包版本添加到Chocolatey存储库中,但它不会运行相关的安装脚本。
这就是我“想到”你所追求的。
注意:并非所有软件包都有chocolateyinstall.ps1文件,而是依赖于Chocolatey的默认安装行为,即为包含的EXE文件创建填充程序等.skippowershell标志不会,据我所知,阻止这种情况发生。
答案 1 :(得分:1)
Chocolatey目前无法检测已安装的应用程序并将其合并到自己的库中。现在,如果您手动安装Node.js MSI然后使用Chocolatey安装相同或更新的版本,事情可能会起作用。神秘的MSI系统非常强大,而且大多数新的MSI都会包含较旧的MSI。
你能运行Chocolatey命令来准确地向我们展示你安装了哪些Node.js吗?
PS> choco list --local-only nodejs
Chocolatey v0.9.9.2
nodejs 0.10.33
nodejs.install 0.10.33
2 packages installed.
我安装了相同的版本。我刚刚进行了更新。我剪断了日志,但你可以看到它更新。
PS> choco upgrade nodejs
Chocolatey v0.9.9.2
nodejs.install v0.12.2
nodejs v0.12.2
Chocolatey upgraded 2/2 package(s). 0 package(s) failed.
Node.js是最新的。
PS> node -v
v0.12.2
控制面板的程序和功能小程序中的应用程序也会更新。所以,Node.js MSI在这里做了正确的事。
我认为我们需要从您的系统中看到更多文字命令输出,以确保您安装了所有正确的版本。