我每周都会升级所有软件包
cup all -y
但是有几个应用程序我很少使用。我想每 6 或 12 周升级一次。所以我把它们固定了。效果很好。但是我该如何覆盖图钉呢?我已经固定了大约 4 个软件包,大约两个月了。我想升级它们吗?
我希望如果我按名称指定固定包,chocolatey 就会明白我确实想要升级它。
choco upgrade thunderbird
这让我毫无进展。
thunderbird 已固定。跳过已固定的软件包
请不要告诉我,我必须取消固定每个我固定的包,然后升级所有包,然后重新固定我刚刚取消固定的包。
答案1
在 Chocolatey 的当前版本 0.10.15 中,没有办法绕过包装上的 pin。您需要执行以下操作:
choco pin remove -n=thunderbird
choco upgrade thunderbird
choco pin add -n=thunderbird
这里有一个提供所需能力的增强请求:
https://github.com/chocolatey/choco/issues/2050
我建议您订阅该协议,并为所需的功能提供任何额外的输入。
答案2
有一个更简单的方法可以做到这一点(而不需要写三遍):-
下面会列出所有被固定的内容 - 然后你只需输入/复制粘贴结果即可
$packages = @()
$test = choco pin list | Select-Object -skip 1
foreach ($t in $test) {
$packages += $t.Substring(0, $t.IndexOf('|'))
}
$package = read-host "which package do you wish to upgrade? $packages"
choco pin remove -n=$package
choco upgrade $package
choco pin add -n=$package
答案3
抱歉,我没有权限在这里评论代码。@charles Delroy 脚本的正确形式是:
$packages = @()
$test = choco pin list | Select-Object -skip 1
foreach ($t in $test) {
$packages += $t.Substring(0, $t.IndexOf('|'))
}
$package = read-host "which package do you wish to upgrade? $packages"
$package
choco pin remove -n="$package"
choco upgrade $package
choco pin add -n="$package"
缺少了一些“”。