首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管理巧克力包依赖项

管理巧克力包依赖项
EN

Stack Overflow用户
提问于 2017-07-19 10:28:16
回答 2查看 2.9K关注 0票数 3

我对巧克力很陌生,我安装了祖鲁作为Oracle (choco install zulu)的替代品。然后,我安装了一个需要Java的应用程序,它将Oracle作为依赖项安装。我认为自己很聪明,后来,我试着使用choco uninstall javaruntime。但是我得到了一个错误“因为'pdfsam.install 3.3.2‘取决于它。”

通过阅读命令的帮助,我看到了安装开关--ignore-dependencies和卸载开关--force-dependencies--force

前两件事很清楚。所以我可以:

代码语言:javascript
复制
choco uninstall pdfsam.install --force-dependencies
choco install pdfsam.install --ignore-dependencies

至于--force,目前还不清楚它做了什么,也不鼓励使用它:

-武力 强迫-强迫行为。不要在正常操作中使用武力--它颠覆了命令的一些智能行为。

这可能意味着卸载一个包,即使另一个包依赖于它。(谁知道呢?)

我的问题是:

  1. 如果我运行一个例程choco upgrade all来删除依赖项,该怎么办?
  2. 我的应用只是一个例子。除了JRE之外,应用程序可能还有其他不可忽略的依赖项。我能选择性地忽略依赖吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-30 17:08:39

第一次安装时,您将希望使用--ignore-depdendencies (或显式指定的升级),然后打开useRememberedArgumentsForUpgrades功能。然后,当您升级时,它可能继续忽略依赖项(只要它不是被忽略的开关之一)。

如果没有忽略它,请在https://github.com/chocolatey/choco/issues/new上提交一张票证,让我们添加它作为增强。

票数 2
EN

Stack Overflow用户

发布于 2017-10-25 20:13:10

当强制卸载依赖项项目时,此依赖项将在更新后重新安装。

例如:

包'foo‘取决于包' bar’,您决定安装foo,因此bar也会被安装。

现在您可以强制卸载栏,但foo仍然保持安装(巧克力卸载栏-强制)。一旦您更新foo,如果它仍然依赖于bar,bar将再次被安装。

示例命令序列:

choco install foo

  • 安装foo和bar

choco uninstall bar

  • 栏不会卸载并打印消息foo依赖于它

choco uninstall bar --force

  • 强制条形图卸载(如果foo仍然正确或不工作取决于包,则无法判断某个未知包)

choco upgrade foo

  • 这将升级foo (如果存在较新的版本),并确保满足所有依赖项-因此,栏将再次安装

我将一个gist与所需的nuspecs和这个示例的输出组合在一起:https://gist.github.com/mwallner/b10bcd6ccd1f7b3d65a56a06c8c8aa0a

至于你的第二个问题,我不知道是否有可能选择性地忽略依赖关系,也许ferventcoder可以在这里有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45187854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档