Chocolatey可以识别手动nodejs安装吗?

时间:2015-04-17 00:32:09

标签: node.js npm updates chocolatey

运行命令node -v提供以下值:v0.10.33。我知道Node.js目前的版本是0.12。然而,当运行choco update nodejs时,提示符显示"没有更新"。在" choco更新npm"。

之后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)。这通常表示文件丢失或移动。

我暂时离开它,直到我排除故障。

2 个答案:

答案 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在这里做了正确的事。

Enter image description here

我认为我们需要从您的系统中看到更多文字命令输出,以确保您安装了所有正确的版本。