我无法使用 Chocolatey 安装软件包

I cannot install packages with Chocolatey

当我写命令时choco install 'Name'这是发生了什么:

'Name' not installed. The package was not found with the source(s) listed. Source(s): 'https://chocolatey.org/api/v2/' NOTE: When you specify explicit sources, it overrides default sources. If the package version is a prerelease and you didn't specify --pre, the package may not be found. Please see https://chocolatey.org/docs/troubleshooting for more assistance.

很可能是因为您是在命令提示符下执行此操作,并将程序包名称用单引号引起来。删除单引号,它应该可以工作。如果这不起作用或者您使用 PowerShell 作为 CLI,请继续阅读一些配置故障排除步骤。


检查包是否存在于您配置的存储库之一中:

choco list packageName

其中 packageName 是您要安装的软件包的名称。如果您收到回复,请仔细检查您传递给 choco list 的包名是否正确;有时包名称可能不同,但仍会根据您使用的搜索词进行标记。

如果您没有得到任何匹配,请仔细检查 online portal 包是否确实存在。并非所有东西都有 Chocolatey 包,它们通常由第三方志愿者维护。如果您在此处找到该软件包,请尝试使用他们给您的命令进行安装(软件包信息页面将包含 copy/pastable 安装命令)。

如果它仍然不起作用,但您已确认该软件包存在,请确保您已配置 public 存储库(如果这是一个非 public 软件包,则为内部存储库, 但显然我不会在这里 URL):

choco sources

这应该会列出您系统上配置的所有存储库。假设您正在寻找 public 包,您应该会看到返回的 chocolatey 存储库类似于以下内容(URL 在这里很重要):

chocolatey - https://chocolatey.org/api/v2/ | Priority 0|Bypass Proxy - False|Self-Service - False|Admin Only - False.

如果此处未显示 public 存储库,或者您在存储库名称后看到 [Disabled],请像这样修复它:

  1. 如果禁用:

      # If the repo is not named chocolatey, use the repo name returned by the choco sources command
      choco source enable -n chocolatey
    
  2. 如果根本不存在:

      choco source add -n chocolatey -s 'https://chocolatey.org/api/v2/'
    

如果 none 有效,则问题可能与网络或其他基础设施有关。依赖 public 存储库的弱点之一是众所周知,它会在美国下班时间定期离线。这就是为什么我们在工作中不依赖 public 存储库,而是用 squid 代理我们需要的那些,或者在我们自己的私有提要中维护我们自己的包。