如何使用Windows PowerShell PackageManager(OneGet)安装Node.js?

izkcnapc  于 2023-08-05  发布在  Shell
关注(0)|答案(3)|浏览(135)

我尝试了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,以便命令可用?
不知道这个问题是否相关:Chocolaty packages not installing via OneGet/PackageManagement in Windows 10?
正如另一个问题所暗示的,我尝试设置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手动下载/安装它们。

2vuwiymt

2vuwiymt1#

我能够重现这一点,但也能够解决它。问题是在使用Install-Package安装后,node可执行文件不在PATH上。但是,这确实有一定的意义,因为当前的PowerShell进程在重新启动之前不会获取对环境变量的外部更改。
Chocolatey的refreshenv命令有时可以工作,但并不总是可以,在安装nodejsInstall-Package之后,refreshenv无法刷新PATH变量。什么 * 做 * 工作是启动一个新的PowerShell会话并运行node命令,这成功地运行了可执行文件:

> node

Welcome to Node.js v16.7.0.
Type ".help" for more information.
>

字符串
choco.exe有时可以屏蔽这个问题,但是 * 通常 * Chocolatey不会为EXE或MSI安装程序放置的可执行文件生成垫片(除非软件包维护者强制创建它们)。

**提示:**如果您需要从安装软件包的同一进程调用二进制文件(例如:在chef-client运行期间,refreshenv不是选项),使用可执行文件的完全限定路径来调用新安装的软件。

此外,不要在真实的的自动化中使用Chocolatey OneGet提供程序;它还不稳定,在写这篇文章的时候看起来像hasn't seen any development activity in five years。关于README.md
注意:寻求维护人员帮助完成此提供程序。请在问题列表或Gitter上查询(请参阅下面的聊天室)。谢谢你,谢谢
在相同的README中列出了一个替代方案:
注意:目前,您可能更感兴趣的是使用ChocolateyGet提供程序作为临时解决方案,直到该提供程序准备就绪。详情请参见https://github.com/jianyunt/ChocolateyGet
我尝试了这个方法,它似乎可以工作,但我仍然建议使用官方的choco.exe二进制文件。它很容易安装,你会得到最好的支持,当使用它。它还告诉配置管理解决方案(如Chef的chocolatey_package资源)继续使用二进制文件,并且通常将安装客户端列为先决条件,即使从技术上讲,PackageManagement模块可以用作本机解决方案。

bybem2ql

bybem2ql2#

它为我工作:

winget install nodejs

字符串

mctunoxg

mctunoxg3#

尝试在你的powershell上使用这个命令:

npm install -g npm

字符串
有关更多信息,请参阅此URL:
https://www.webdevtutor.net/error-solutions/npm-the-term-npm-is-not-recognized-as-the-name-of-a-cmdlet-function-script-file-or-operable-program

相关问题