我是Chocolatey的新手,我安装了zulu作为Oracle Java的替代品(choco install zulu
)。
然后我安装了一个需要Java choco install pdfsam.install
的应用程序,它安装了Oracle JRE作为依赖项。我认为很聪明,后来我尝试choco uninstall javaruntime
。但是我收到了一个错误"因为' pdfsam.install 3.3.2'取决于它。"。
通过阅读命令'帮助,我看到了安装开关--ignore-dependencies
和卸载开关--force-dependencies
和--force
前两个很清楚。所以我可以:
choco uninstall pdfsam.install --force-dependencies
choco install pdfsam.install --ignore-dependencies
关于--force
,目前尚不清楚它的用途和使用情况有点气馁:
- 力
强制 - 强制行为。在正常操作期间不要使用强制 - 它会破坏命令的某些智能行为。
这可能意味着卸载一个包,即使另一个包依赖它。 (谁知道?)
我的问题是:
choco upgrade all
来删除依赖项怎么办?答案 0 :(得分:1)
强制卸载依赖项目时,一旦依赖项目更新,将重新安装此依赖项。
例如:
包'foo'取决于包'bar' 你决定安装foo,因此也安装了吧。
现在你可以强制卸载吧,但foo仍然保持安装(choco uninstall bar --force)。 一旦你更新了foo,iff它仍然依赖于bar,bar将再次安装。
示例命令序列:
choco install foo
choco uninstall bar
choco uninstall bar --force
choco upgrade foo
我已经将所需的nuspec和此示例的输出放在一起: https://gist.github.com/mwallner/b10bcd6ccd1f7b3d65a56a06c8c8aa0a
关于你的第二个问题,我不知道是否有可能选择性地忽略依赖,也许ferventcoder可以在这里提供帮助。
答案 1 :(得分:1)
首次安装时,您需要使用--ignore-depdendencies
(或明确指定的升级),然后启用useRememberedArgumentsForUpgrades
功能。然后,当您升级时,它可能会继续忽略依赖项(只要这不是被忽略的交换机之一)。
如果不是您发现的那个被忽略,请在https://github.com/chocolatey/choco/issues/new提交一张票,让我们将其添加为增强功能。