Comment mettre à jour tous les packages Chocolatey sauf un?

28

cup all -yest utilisé pour mettre à jour tous les packages Chocolatey au démarrage. Pour le moment, il y a un problème dans la dernière version de VirtualBox, et je veux éviter que ce package soit mis à jour au démarrage tandis que les autres packages doivent être mis à jour.

Tenter de résoudre le problème

J'ai vérifié la fonction d'aide de la commande:

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.

Mais il ne semble pas avoir de fonction pour exclure un certain paquet.

Comment mettre à jour tous les packages au démarrage, sauf un?

030
la source

Réponses:

33

Vous avez deux options: épingler un colis à l'avance ou exclure des éléments pendant choco upgrade.

Épingler des packages pour supprimer les mises à niveau

Vous pouvez épingler n'importe quel programme que vous ne souhaitez pas mettre à jour.

Tapez choco pin -hpour plus de détails. Si cette commande ne vous donne rien, veuillez mettre à niveau Chocolatey à au moins 0.9.9.x.

Commande de broche

Épinglez un package pour supprimer les mises à niveau.

Cela est particulièrement utile lors de l'exécution choco upgradede tous les packages, car il ignorera automatiquement ces packages. Une autre alternative est choco upgrade --except="pkg1,pk2".

Usage

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

Exemples

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

REMARQUE : --reasonoption UNIQUEMENT disponible dans Chocolatey for Business (C4B).

Exclure des packages lors de la mise à niveau

Parfois, vous souhaitez simplement exclure les éléments que vous incluriez normalement dans les mises à niveau. Vous ne voulez pas d'épingles car elles sont censées durer plus longtemps qu'une seule exécution de commande. C'est là que l' Excludeoption entre dans votre commande de mise à niveau.

À partir de Chocolatey v0.9.10, lorsque vous appelez la mise à niveau, vous pouvez passer l'option en --excepttant que commutateur pour la mise à niveau. Un exemple serait choco upgrade all --except="'conemu'".

ferventcoder
la source
Pourquoi choco pin? Est cup allobsolète?
030
9
Pourquoi la coupe serait-elle obsolète? Pin est une commande qui dit «restez sur cette version pour ce package».
ferventcoder
REMARQUE: pour ajouter une raison à une épingle, vous devez disposer de Chocolatey for Business (C4B).
ferventcoder
2

Selon la documentation officielle :

choco upgrade all --except="'skype,conemu'"
Luc
la source
Sous Windows, cela empêchera la mise à niveau du package, même si vous n'utilisez pas sauf! Le dossier du package est déplacé vers C:\ProgramData\chocolatey\lib-bad. Si vous souhaitez mettre à niveau à nouveau, déplacez-le versC:\ProgramData\chocolatey\lib
Alireza Fattahi