Choco Source
Source Command (choco sources) Chocolatey will allow you to interact with sources. NOTE: Mostly compatible with older chocolatey client (0.9.8.x and below) with options and switches. When enabling, disabling or removing a source, use -name in front of the option now. Below is the solution for Chocolate source crossword clue. This clue was last seen on Sep 25 2018 in the Thomas Joseph crossword puzzle. While searching our database we found 1 possible solution matching the query “Chocolate source”.
Chocolatey will allow you to interact with sources.
NOTE: Mostly compatible with older chocolatey client (0.9.8.x andbelow) with options and switches. When enabling, disabling or removinga source, use -name
in front of the option now. In most cases youcan still pass options and switches with one dash (-
). For moredetails, see how to pass arguments (choco -?
).
Usage
Examples
When it comes to the source location, this can be a folder/file share or an httplocation. If it is a url, it will be a location you can go to in a browser andit returns OData with something that says Packages in the browser, similar towhat you see when you go to https://chocolatey.org/api/v2/.
NOTE: See scripting in how to pass arguments (choco -?
) for how towrite proper scripts and integrations.
Exit Codes
Exit codes that normally result from running this command.
Normal:
- 0: operation was successful, no issues detected
- -1 or 1: an error has occurred
If you find other exit codes that we have not yet documented, pleasefile a ticket so we can document it athttps://github.com/chocolatey/choco/issues/new/choose.
Options and Switches
NOTE: Options and switches apply to all items passed, so if you arerunning a command like install that allows installing multiplepackages, and you use --version=1.0.0
, it is going to look for andtry to install version 1.0.0 of every package passed. So please splitout multiple package calls when wanting to pass specific options.
Includes default options/switches (included below for completeness).
NOTE: This documentation has been automatically generated from choco sources -h
.
Commands
This is a listing of all of the different things you can pass to choco.
- list - lists remote or local packages
- search - searches remote or local packages (alias for list)
- info - retrieves package information. Shorthand for choco search pkgname --exact --verbose
- install - installs packages from various sources
- pin - suppress upgrades for a package
- outdated - retrieves packages that are outdated. Similar to upgrade all --noop
- upgrade - upgrades packages from various sources
- uninstall - uninstalls a package
- pack - packages up a nuspec to a compiled nupkg
- push - pushes a compiled nupkg
- new - generates files necessary for a chocolatey package from a template
- sources - view and configure default sources (alias for source)
- source - view and configure default sources
- config - Retrieve and configure config file settings
- feature - view and configure choco features
- features - view and configure choco features (alias for feature)
- setapikey - retrieves or saves an apikey for a particular source (alias for apikey)
- apikey - retrieves or saves an apikey for a particular source
- unpackself - have chocolatey set itself up
- version - [DEPRECATED] will be removed in v1 - use
choco outdated
orcup <pkg all> -whatif
instead - update - [DEPRECATED] RESERVED for future use (you are looking for upgrade, these are not the droids you are looking for)
- support - provides support information
- download - downloads packages - optionally internalizing all remote resources
- synchronize - synchronizes against system installed software - generates missing packages
- sync - synchronizes against system installed software - generates missing packages
- optimize - optimizes installation, reducing space usage
Chocolate Source Bean
Please run chocolatey with choco command -help
for specific help on
each command.
How To Pass Options / Switches
You can pass options and switches in the following ways:
- Unless stated otherwise, an option/switch should only be passed one
time. Otherwise you may find weird/non-supported behavior. -
,/
, or--
(one character switches should not use--
)- Option Bundling / Bundled Options: One character switches can be
bundled. e.g.-d
(debug),-f
(force),-v
(verbose), and-y
(confirm yes) can be bundled as-dfvy
. - NOTE: If
debug
orverbose
are bundled with local options
(not the global ones above), some logging may not show up until after
the local options are parsed. - Use Equals: You can also include or not include an equals sign
=
between options and values. - Quote Values: When you need to quote an entire argument, such as
when using spaces, please use a combination of double quotes and
apostrophes ('value'
). In cmd.exe you can just use double quotes
('value'
) but in powershell.exe you should use backticks
(`'value`'
) or apostrophes ('value'
). Using the combination
allows for both shells to work without issue, except for when the next
section applies. - Pass quotes in arguments: When you need to pass quoted values to
to something like a native installer, you are in for a world of fun. In
cmd.exe you must pass it like this:-ia '/yo='Spaces spaces''
. In
PowerShell.exe, you must pass it like this:-ia '/yo='Spaces spaces''
.
No other combination will work. In PowerShell.exe if you are on version
v3+, you can try--%
before-ia
to just pass the args through as is,
which means it should not require any special workarounds. - Periods in PowerShell: If you need to pass a period as part of a
value or a path, PowerShell doesn't always handle it well. Please
quote those values using 'Quote Values' section above. - Options and switches apply to all items passed, so if you are
installing multiple packages, and you use--version=1.0.0
, choco
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.
Scripting / Integration - Best Practices / Style Guide
When writing scripts, such as PowerShell scripts passing options and
switches, there are some best practices to follow to ensure that you
don't run into issues later. This also applies to integrations that
are calling Chocolatey and parsing output. Chocolatey uses
PowerShell, but it is an exe, so it cannot return PowerShell objects.
Following these practices ensures both readability of your scripts AND
compatibility across different versions and editions of Chocolatey.
Following this guide will ensure your experience is not frustrating
based on choco not receiving things you think you are passing to it.
- For consistency, always use
choco
, notchoco.exe
. Never use
shortcut commands likecinst
orcup
. - Always have the command as the first argument to
choco. e.g.
choco install, where
install` is the command. - If there is a subcommand, ensure that is the second argument. e.g.
choco source list
, wheresource
is the command andlist
is the
subcommand. - Typically the subject comes next. If installing packages, the
subject would be the package names, e.g.choco install pkg1 pkg2
. - Never use 'nupkg' or point directly to a nupkg file UNLESS using
'choco push'. Use the source folder instead, e.g.choco install <package id> --source='c:folderwithpackage'
instead ofchoco install DoNotDoThis.1.0.nupkg
orchoco install DoNotDoThis --source='c:folderwithpackageDoNotDoThis.1.0.nupkg'
. - Switches and parameters are called simply options. Options come
after the subject. e.g.choco install pkg1 --debug --verbose
. - Never use the force option (
--force
/-f
) in scripts (or really
otherwise as a default mode of use). Force is an override on
Chocolatey behavior. If you are wondering why Chocolatey isn't doing
something like the documentation says it should, it's likely because
you are using force. Stop. - Always use full option name. If the short option is
-n
, and the
full option is--name
, use--name
. The only acceptable short
option for use in scripts is-y
. Find option names in help docs
online or throughchoco -?
/choco [Command Name] -?
. - For scripts that are running automated, always use
-y
. Do note
that even with-y
passed, some things / state issues detected will
temporarily stop for input - the key here is temporarily. They will
continue without requiring any action after the temporary timeout
(typically 30 seconds). - Full option names are prepended with two dashes, e.g.
--
or--debug --verbose --ignore-proxy
. - When setting a value to an option, always put an equals (
=
)
between the name and the setting, e.g.--source='local'
. - When setting a value to an option, always surround the value
properly with double quotes bookending apostrophes, e.g.--source='internal_server'
. - If you are building PowerShell scripts, you can most likely just
simply use apostrophes surrounding option values, e.g.--source='internal_server'
. - Prefer upgrade to install in scripts. You can't
install
to a newer
version of something, but you canchoco upgrade
which will do both
upgrade or install (unless switched off explicitly). - If you are sharing the script with others, pass
--source
to be
explicit about where the package is coming from. Use full link and
not source name ('https://chocolatey.org/api/v2' versus
'chocolatey'). - If parsing output, you might want to use
--limit-output
/-r
to
get output in a more machine parseable format. NOTE: Not all
commands handle return of information in an easily digestible
output. - Use exit codes to determine status. Chocolatey exits with 0 when
everything worked appropriately and other exits codes like 1 when
things error. There are package specific exit codes that are
recommended to be used and reboot indicating exit codes as well. To
check exit code when using PowerShell, immediately call$exitCode = $LASTEXITCODE
to get the value choco exited with.
Here's an example following bad practices (line breaks added for
readability):
Now here is that example written with best practices (again line
breaks added for readability - there are not line continuations
for choco):
Chocolatey Add Source
Note the differences between the two:
- Which is more self-documenting?
- Which will allow for the newest version of something installed or
upgraded to (which allows for more environmental consistency on
packages and versions)? - Which may throw an error on a badly passed option?
- Which will throw errors on unknown option values? See explanation
below.
Chocolatey ignores options it doesn't understand, but it can only
ignore option values if they are tied to the option with an
equals sign ('='). Note those last two options in the examples above?
If you roll off of a commercial edition or someone with older version
attempts to run the badly crafted script --c4b-option 'Yaass' --option-that-is-new 'dude upgrade'
, they are likely to see errors on
'Yaass' and 'dude upgrade' because they are not explicitly tied to the
option they are written after. Now compare that to the other script.
Choco will ignore --c4b-option='Yaass'
and--option-that-is-new='dude upgrade'
as a whole when it doesn't
register the options. This means that your script doesn't error.
Following these scripting best practices will ensure your scripts work
everywhere they are used and with newer versions of Chocolatey.
See Help Menu In Action
Default Options and Switches
NOTE: Options and switches apply to all items passed, so if you are
running a command like install that allows 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.
NOTE: This documentation has been automatically generated from choco -h
.