无需卸载应用程序即可删除 Chocolatey 注册

Kla*_*urn 32 chocolatey

我希望能够用来choco upgrade all -y更新我几乎所有的 Chocolatey 包。

一些包代表我想要安装的应用程序,但我不再希望它们被更新,至少不是由choco upgrade all命令自动更新。

我可以在不实际卸载应用程序的情况下从 Chocolatey 中删除软件包吗?这样就会达到预期的效果。

或者我能以更好的方式实现我的目标吗?

Pat*_*eck 42

示例(在myExamplePackage不卸载的情况下从巧克力中删除包)

choco uninstall myExamplePackage -n --skipautouninstaller
Run Code Online (Sandbox Code Playgroud)

来自巧克力文档

注意:可以使用-n --skipautouninstaller标志删除卸载失败的包 。这将从巧克力中删除包,而不会尝试卸载程序。

  • 出于好奇:“-n”表示_Skip Powershell - 不要运行chocolateyUninstall.ps1。默认为 false._ (2认同)

aga*_*rys 41

您有两个选择:

  1. 您可以使用 pin(有关详细信息,请参阅choco pin -h)并且 Chocolatey 不会尝试升级包:choco pin add -n=packageName. 之后该命令choco upgrade all将跳过 name 的包packageName

  2. 您可以从 Chocolatey 数据库中删除应用程序(您必须删除应用程序文件夹)。所有应用程序元数据都存储在文件夹中C:\ProgramData\chocolatey\lib\<package-name>,例如:C:\ProgramData\chocolatey\lib\adobereader

    小心删除目录,因为有时应用程序安装在巧克力应用程序文件夹中,例如: C:\ProgramData\chocolatey\lib\javadecompiler-gui\jd-gui-windows-1.4.0

  • 选项 2,我不会编辑它(因为它已经是公认的答案),但您也可以固定不想升级的包。与必须手动删除文件相比,这是一个更好的解决方案。 (2认同)
  • 我修改了答案。随时可以扩展任何答案;) (2认同)