在不卸载应用程序的情况下删除Chocolatey注册


22

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

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

是否可以在不实际卸载应用程序的情况下从Chocolatey中删除软件包?这将具有预期的效果。

还是可以更好地实现目标?


3
您可以使用大头针(choco pin -h有关详细信息,请参见),Chocolatey不会尝试升级软件包。github.com/chocolatey/choco/wiki/CommandsPin
ferventcoder

一个新的选项是在Pro /业务同步- chocolatey.org/docs/features-synchronize
ferventcoder

Answers:


30

您有两种选择:

  1. 您可以使用pin(有关详细信息,请参见choco pin -h),Chocolatey将不会尝试升级软件包:choco pin add -n=packageName。之后,该命令choco upgrade all将跳过名称为package的软件包packageName

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

    仔细删除目录,因为有时应用程序安装在Chocolatey Applications文件夹中,例如: C:\ProgramData\chocolatey\lib\javadecompiler-gui\jd-gui-windows-1.4.0


看起来可行。这对巧克力没有副作用吗?没有需要修改的配置文件?
Klas Mellbourn

1
Chocolatey将所有包装数据存储在lib文件夹中,因此您可以安全地删除这些文件夹。
agabrys 2015年

2
选项2,我不会编辑它(因为它已经被接受),但是您也可以固定不想升级的软件包。与必须手动删除文件相比,这是一个更好的解决方案。
ferventcoder

@agabrys,如果您要我编辑答案,则可以添加有关图钉的详细信息。或者您可以对其进行编辑。
ferventcoder

2
我修改了答案。随时随便提供任何答案;)
agabrys 2015年

28

示例(将包myExamplePackage从Chocolatey中删除而不进行卸载)

choco uninstall myExamplePackage -n --skipautouninstaller

来自Chocolatey文档

注意:卸载失败的软件包可以使用-n --skipautouninstaller标记删除 。这将从巧克力中删除该软件包,而无需尝试卸载该程序。


我不知道如何使用该命令-您能告诉我软件包的完整命令吗?
user598527

1
确定-我在帖子中添加了一个示例。
Patrick Heck

这似乎不再适用于当前版本的Chocolatey
Mica,

1
非常适合我,谢谢!
海绵吸”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.