Как мне обновить все пакеты Chocolatey, кроме одного?
cup all -y
используется для обновления всех пакетов Chocolatey при загрузке. На данный момент существует проблема в последней версии VirtualBox, и я хочу, чтобы этот пакет обновлялся при загрузке, в то время как другие пакеты должны быть обновлены.
Попытка решить проблему
Я проверил справочную функцию команды:
C:\>cup all -h
Chocolatey v0.9.9.8
Upgrade Command
Upgrades a package or a list of packages. Some may prefer to use `cup`
as a shortcut for `choco upgrade`.
Usage
choco upgrade <pkg|all> [<pkg2> <pkgN>] [<options/switches>]
cup <pkg|all> [<pkg2> <pkgN>] [<options/switches>]
NOTE: `all` is a special package keyword that will allow you to upgrade
all currently installed packages.
Examples
choco upgrade chocolatey
choco upgrade notepadplusplus googlechrome atom 7zip
choco upgrade notepadplusplus googlechrome atom 7zip -dvfy
choco upgrade git --params="/GitAndUnixToolsOnPath /NoAutoCrlf" -y
choco upgrade nodejs.install --version 0.10.35
choco upgrade git -s "https://somewhere/out/there"
choco upgrade git -s "https://somewhere/protected" -u user -p pass
Options and Switches
NOTE: Options and switches apply to all items passed, so if you are
installing multiple packages, and you use `--version=1.0.0`, it is
going to look for and try to install version 1.0.0 of every package
passed. So please split out multiple package calls when wanting to
pass specific options.
-?, --help, -h
Prints out the help menu.
-d, --debug
Debug - Run in Debug Mode.
-v, --verbose
Verbose - See verbose messaging.
--acceptlicense, --accept-license
AcceptLicense - Accept license dialogs automatically.
-y, --yes, --confirm
Confirm all prompts - Chooses affirmative answer instead of prompting.
Implies --accept-license
-f, --force
Force - force the behavior
--noop, --whatif, --what-if
NoOp - Don't actually do anything.
-r, --limitoutput, --limit-output
LimitOutput - Limit the output to essential information
--execution-timeout=VALUE
CommandExecutionTimeoutSeconds - Override the default execution timeout
in the configuration of 2700 seconds.
-c, --cache, --cachelocation, --cache-location=VALUE
CacheLocation - Location for download cache, defaults to %TEMP% or value
in chocolatey.config file.
--allowunofficial, --allow-unofficial, --allowunofficialbuild, --allow-unofficial-build
AllowUnofficialBuild - When not using the official build you must set
this flag for choco to continue.
-s, --source=VALUE
Source - The source to find the package(s) to install. Special sources
include: ruby, webpi, cygwin, windowsfeatures, and python. Defaults to
default feeds.
--version=VALUE
Version - A specific version to install. Defaults to unspecified.
--pre, --prerelease
Prerelease - Include Prereleases? Defaults to false.
--x86, --forcex86
ForceX86 - Force x86 (32bit) installation on 64 bit systems. Defaults to
false.
--ia, --installargs, --installarguments, --install-arguments=VALUE
InstallArguments - Install Arguments to pass to the native installer in
the package. Defaults to unspecified.
-o, --override, --overrideargs, --overridearguments, --override-arguments
OverrideArguments - Should install arguments be used exclusively without
appending to current package passed arguments? Defaults to false.
--notsilent, --not-silent
NotSilent - Do not install this silently. Defaults to false.
--params, --parameters, --pkgparameters, --packageparameters, --package-parameters=VALUE
PackageParameters - Parameters to pass to the package. Defaults to
unspecified.
-m, --sxs, --sidebyside, --side-by-side, --allowmultiple, --allow-multiple, --allowmultipleversions, --allow-multiple-versions
AllowMultipleVersions - Should multiple versions of a package be
installed? Defaults to false.
-i, --ignoredependencies, --ignore-dependencies
IgnoreDependencies - Ignore dependencies when upgrading package(s).
Defaults to false.
-n, --skippowershell, --skip-powershell
Skip Powershell - Do not run chocolateyInstall.ps1. Defaults to false.
--failonunfound, --fail-on-unfound
Fail On Unfound Packages - If a package is not found in feeds specified,
fail instead of warn.
--failonnotinstalled, --fail-on-not-installed
Fail On Non-installed Packages - If a package is not already intalled,
fail instead of installing.
-u, --user=VALUE
User - used with authenticated feeds. Defaults to empty.
-p, --password=VALUE
Password - the user's password to the source. Defaults to empty.
Но, похоже, нет функции для исключения определенного пакета.
Как мне обновить все пакеты при загрузке, кроме одного?
2 ответа
У вас есть два варианта: закрепить или исключить элементы во время выполнения.
Пакеты булавок для подавления апгрейдов
Вы можете закрепить любую программу, которую вы не хотите обновлять.
Тип choco pin -h
Больше подробностей. Если эта команда ничего не дает, обновите Chocolatey до уровня не ниже 0.9.9.x.
Команда Pin
Прикрепите пакет, чтобы отменить обновления.
Это особенно полезно при запуске
choco upgrade
для всех пакетов, так как он автоматически пропустит эти пакеты. Другая альтернативаchoco upgrade --except="pkg1,pk2"
,использование
choco pin [list]|add|remove [<options/switches>]
Примеры
choco pin choco pin list choco pin add -n=git choco pin add -n=git --version 1.2.3 C4B: choco pin add -n=git --version 1.2.3 --reason "'others may need to review'" choco pin remove --name git
ПРИМЕЧАНИЕ: --reason
опция доступна ТОЛЬКО в Chocolatey для бизнеса (C4B).
Исключить пакеты во время выполнения
Иногда вы просто хотите исключить элементы, которые вы обычно включаете в обновления. Вы не хотите пины, так как они предназначены для жизни дольше, чем один запуск команды. Вот где Exclude
опция входит в вашу команду обновления.
Начиная с версии Chocolatey v0.9.10, при вызове апгрейда вы можете передать дополнительный --except
как переключатель для обновления. Примером будет choco upgrade all --except="'conemu'"
,
Согласно официальной документации:
choco upgrade all --except="'skype,conemu'"