我试过Install-Package nodejs,它似乎做了些什么:
PS C:\WINDOWS\system32> Install-Package nodejs
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from 'chocolatey'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
---- ------- ------ -------
nodejs.install 11.10.0 chocolatey Node JS - Evented I/O for v8 JavaScript.
nodejs 11.10.0 chocolatey Node JS - Evented I/O for v8 JavaScript.然后,当我尝试运行node命令时,它会失败:
PS C:\WINDOWS\system32> node
node : The term 'node' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ node
+ ~~~~
+ CategoryInfo : ObjectNotFound: (node:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException如何使用PackageManager正确地执行此操作,以便可以使用该命令?
不确定另一个问题是否相关:在Windows 10中,没有通过OneGet/PackageManagement安装巧克力包装?
正如另一个问题所暗示的,我尝试设置Set-ExecutionPolicy Unrestricted,卸载和重新安装nodejs,但是结果是一样的。
我确实看到,安装后存在以下文件:
C:\Chocolatey\lib\nodejs.11.10.0\nodejs.11.10.0.nupkg
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg\legal\LICENSE.txt
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg\legal\VERIFICATION.txt
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg\tools\chocolateyInstall.ps1
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg\tools\node-v11.10.0-x64.msi
C:\Chocolatey\lib\nodejs.install.11.10.0.nupkg\nodejs.install.11.10.0.nupkg\tools\node-v11.10.0-x86.msi这让我想,也许它希望我在之后手动运行安装程序?
我的目标是从脚本中简单地在新的Windows机器上安装我需要的任何东西,而不必用GUI手动下载/安装它们。
发布于 2021-08-24 15:42:07
我能够复制这个,但也能解决这个问题。问题是使用node安装后,Install-Package可执行文件不在路径上。但是,这确实是有意义的,因为当前的PowerShell流程在重新启动之前不会对环境变量进行外部更改。
Chocolatey的refreshenv命令有时起作用,但并不总是起作用,在用Install-Package安装nodejs之后,refreshenv无法刷新PATH变量。所做的工作是启动一个新的PowerShell会话并运行node命令,该命令成功地运行了可执行文件:
> node
Welcome to Node.js v16.7.0.
Type ".help" for more information.
> choco.exe有时可以掩盖这一点,但通常巧克力不会为EXE或MSI安装程序放置的可执行文件生成shims (除非包维护人员强制创建它们)。
提示:如果您需要从安装包的同一进程调用二进制文件(例如,在
chef-client运行过程中refreshenv不是选项),则使用可执行文件的完全限定路径来调用新安装的软件。
此外,不要在真正的自动化中使用巧克力般的OneGet提供商;它还不稳定,在编写本报告时看起来很像五年来没有看到任何开发活动。来自README.md
注意:寻找维护人员来帮助完成此提供程序。请查询问题清单或Gitter (见下面的聊天室)。谢谢!
在同一个README中列出了一个替代方案
注意:目前,您可能更感兴趣的是使用ChocolateyGet提供程序作为停止间隙解决方案,直到该提供程序准备就绪。详细信息请参见https://github.com/jianyunt/ChocolateyGet
我尝试过这样做,它似乎很有效,但我仍然建议使用正式的choco.exe二进制文件。安装起来很容易,使用它时你会得到最好的支持。这也说明配置管理解决方案(如主厨的chocolatey_package资源)继续使用二进制文件,并且通常会将安装客户端作为先决条件,尽管从技术上讲,PackageManagement模块可以作为本地解决方案使用。
发布于 2022-10-13 19:09:11
对我来说很管用:
winget install nodejshttps://stackoverflow.com/questions/54739523
复制相似问题