[英]Manage Chocolatey package dependencies
我是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
程序以删除choco upgrade all
依赖项怎么办? 首次安装时,您将要使用--ignore-depdendencies
(或明确指定的升级),然后启用useRememberedArgumentsForUpgrades
功能。 然后,在升级时,它可能会继续忽略依赖项(只要不是被忽略的开关之一)。
如果不是您发现的人,请在https://github.com/chocolatey/choco/issues/new上提交票证,以使我们将其添加为增强功能。
当您强制卸载依赖项项目时,依赖项一旦更新,此依赖项将重新安装。
例如:
软件包“ foo”取决于您决定安装foo的软件包“ bar”,因此bar也需要安装。
现在您可以强制卸载bar,但foo仍保持安装状态(choco卸载bar --force)。 一旦您更新foo,如果它仍然对bar有依赖关系,bar将重新安装。
示例命令序列:
choco install foo
choco uninstall bar
choco uninstall bar --force
choco upgrade foo
我已经将要点与所需的nuspec和此示例的输出放在一起: https ://gist.github.com/mwallner/b10bcd6ccd1f7b3d65a56a06c8c8aa0a
至于第二个问题,我不知道是否可以有选择地忽略依赖,ferventcoder可以在这里提供帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.