How to update all Chocolatey packages except one?

cup all -y is used to update all Chocolatey packages at boot. At the moment there is an issue in the latest version of VirtualBox, and I want to avoid that this package is updated at boot while the other packages need to be updated.

Attempt to solve the issue

I have checked the help function of the command:

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 "" choco upgrade git -s "" -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.

But it does not seem to have a function to exclude a certain package.

How to update all packages at boot, except one?

2 Answers

You have two options: pin a package in advance, or exclude items during choco upgrade.

Pin Packages to Suppress Upgrades

You can pin any program you don't want updated.

Type choco pin -h for more details. If that command doesn't give you anything, please upgrade Chocolatey to at least 0.9.9.x.

Pin Command

Pin a package to suppress upgrades.

This is especially helpful when running choco upgrade for all packages, as it will automatically skip those packages. Another alternative is choco upgrade --except="pkg1,pk2".

Usage

choco pin [list]|add|remove [<options/switches>]

Examples

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

NOTE: --reason option ONLY available in Chocolatey for Business (C4B).

Exclude Packages While Upgrading

Sometimes you just simply want to exclude items you would normally include in upgrades. You don't want pins as those are meant to live longer than a single command run. That is where the Exclude option comes in to your upgrade command.

As of Chocolatey v0.9.10, when calling upgrade, you can pass the optional --except as a switch for upgrade. An example would be choco upgrade all --except="'conemu'".

4

According to the official documentation:

choco upgrade all --except="'skype,conemu'"
4

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like