How to install chocolatey package manager on windows 10/8/7
Содержание:
- Установка Chocolatey
- Parameters
- Why?
- How To Pass Options / Switches
- Магия Chocolatey: apt-get и yum для Windows
- Chocolatey. Что это такое? Как установить и как им пользоваться?
- Comparison
- Where are Chocolatey packages installed to?
- Can I use Chocolatey with existing installed software?
- АЦРК: Многовариантный автоматический запрет редактирования (для конфигурации УТ 10.3)
- Using Chocolatey
- Централизованное управление кластером 1С Предприятия, состоящим из нескольких рабочих серверов, работающих на платформе GNU/Linux
- Additional Configuration
- Chocolatey Installation
- Terminology
- Recommendations
- Requirements
Установка Chocolatey
Чтобы установить Chocolatey, откройте PowerShell от имени администратора из меню «Пуск». Затем скопируйте и вставьте следующую строку сценария и нажмите клавишу Enter:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Это позволит настроить PowerShell для работы внешних сценариев перед загрузкой и запуском сценария установки Chocolatey. Для получения более подробной информации об этом процессе, вы должны обратиться к собственной документации Chocolatey. Если вы обеспокоены тем, что делает скрипт, вы должны проверить его вручную перед запуском команды.
Parameters
-ShortcutFilePath <String>
The full absolute path to where the shortcut should be created.
Property | Value |
---|---|
Aliases | |
Required? | true |
Position? | 1 |
Default Value | |
Accept Pipeline Input? | false |
-TargetPath <String>
The full absolute path to the target for new shortcut.
Property | Value |
---|---|
Aliases | |
Required? | true |
Position? | 2 |
Default Value | |
Accept Pipeline Input? | false |
-WorkingDirectory
OPTIONAL — The full absolute path of the Working Directory that will be
used by the new shortcut.
As of v0.10.12, the directory will be created unless it contains environment
variable expansion like .
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | 3 |
Default Value | |
Accept Pipeline Input? | false |
-Arguments
OPTIONAL — Additional arguments that should be passed along to the new
shortcut.
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | 4 |
Default Value | |
Accept Pipeline Input? | false |
-IconLocation
OPTIONAL- The full absolute path to an icon file to be used for the new
shortcut.
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | 5 |
Default Value | |
Accept Pipeline Input? | false |
-Description
OPTIONAL — A text description to be associated with the new description.
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | 6 |
Default Value | |
Accept Pipeline Input? | false |
-WindowStyle
OPTIONAL — Type of windows target application should open with.
Available in 0.9.10+.
0 = Hidden, 1 = Normal Size, 3 = Maximized, 7 — Minimized.
Full list table 3.9 here: https://technet.microsoft.com/en-us/library/ee156605.aspx
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | 7 |
Default Value | |
Accept Pipeline Input? | false |
-RunAsAdmin
OPTIONAL — Set «Run As Administrator» checkbox for the created the
shortcut. Available in 0.9.10+.
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | named |
Default Value | False |
Accept Pipeline Input? | false |
-PinToTaskbar
OPTIONAL — Pin the new shortcut to the taskbar. Available in 0.9.10+.
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | named |
Default Value | False |
Accept Pipeline Input? | false |
-IgnoredArguments >]
Allows splatting with arguments that do not apply. Do not use directly.
Property | Value |
---|---|
Aliases | |
Required? | false |
Position? | named |
Default Value | |
Accept Pipeline Input? | false |
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see http://go.microsoft.com/fwlink/p/?LinkID=113216 .
Why?
Chocolatey has had the ability to be able to work with packages from one or more sources since its inception back in 2011. With that, Chocolatey comes with a default package repository configured — the community package repository. However due to the community repository being publicly available and subject to distribution rights, it has a failure point in that it can not be 100% reliable (most packages can’t contain software and must download at runtime). It’s not something an organization hosting their own package repository would be subject to, so we recommend organizational use of Chocolatey should include an internal package repository. Organizations looking to use Chocolatey should review the following topics to learn more:
- Community package repository — organizational use
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. (debug), (force), (verbose), and
(confirm yes) can be bundled as . -
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 (). In cmd.exe you can just use double quotes
() but in powershell.exe you should use backticks
() or apostrophes (). 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: . In
PowerShell.exe, you must pass it like this: .
No other combination will work. In PowerShell.exe if you are on version
v3+, you can try before 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 , 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.
Магия Chocolatey: apt-get и yum для Windows
В наше время становится все меньше и меньше людей, которые хоть раз не устанавливали софт в среде Linux. Это невероятно просто: для установки midnight commander (mc), в среде RH (RedHat Enterprise, CentOS, Fedora, и т.д) нам всего лишь нужна пара «волшебных» команд:
Менеджер пакетов yum позаботится о том, чтобы установилась самая свежая версия mc, а также о зависимостях пакета, если таковые имеются. Но что же делать, если в нашем распоряжении находится Windows, а мы хотим что-то подобное? Правильно, перейти на Linux или читать дальше!
Под моей «опекой» находится гетерогенная сеть из Windows и Linux машин (проще сказать — зоопарк), и вот уже около двух лет для установки софта под Win* я пользуюсь, где это возможно, Chocolatey. Chocolatey (chocolatey.org, github.com/chocolatey) — система управления пакетами, во многом схожая с apt-get или yum, но только для Windows.
На хабре уже касались темы Chocolatey в контексте разработчика, сегодня я хочу взглянуть на этот замечательный инструмент с точки зрения системного администратора. Chocolatey работает на основе технологии NuGet (активно используется разработчиками софта под Windows), и основная черта Chocolatey — пакеты чаще всего не содержат установочных файлов (setup.msi, setup.exe, и т.д. ). Работает это следующим образом: в пакете находится скрипт-установщик на powershell, который скачивает и устанавливает нужную версию установочного файла из нужного места в интернете, а Вам остается только наслаждаться легкостью установки.
Chocolatey. Что это такое? Как установить и как им пользоваться?
Как обычно вы устанавливаете программу в Windows? Вы находите нужную программу в интернете, скачиваете её с сайта (в лучшем случае с официального) и запускаете установку. Не редко вместе с программой устанавливаются не нужные вам дополнительные программы. Кстати, на сайте есть статья про то как защититься от таких установщиков.В Linux системах существует альтернативный подход к установке программ. Там используются специальные менеджеры пакетов, которые почти избавляют вас от необходимости скачивания программ из интернета. К тому же можно подключать несколько различных репозиториев.Chocolatey — это репозиторий с программами для windows 7 и выше. Он предоставляет те же преимущества, что и менеджеры пакетов в Linux. На данный момент этот репозиторий насчитывает уже более 8000 популярных программ.
Как установить?
- Windows 7+ / Windows Server 2003+
- PowerShell v2 +
- .NET Framework 4+ (при установке будет предпринята попытка установить .NET 4.0, если он у вас не установлен)
Установить его можно выполнив специальную команду. Команду нужно выполнять либо в командной строке CMD.exe либо в PowerShell.exe. Оба должны быть запущены с правами администратора. Вот сами команды:
- Для CMD.exe
- Для PowerShell.exe
После установки, Chocolatey можно обновить точно так же, как любой другой пакет, который был установлен с помощью Chocolatey. Просто используйте команду для обновления до последней стабильной версии Chocolatey:choco upgrade chocolatey
Как пользоваться менеджером пакетов Chocolatey
А как узнать какая команда какую программу устанавливает? Посмотреть команды для каждой программы можно в самом хранилище пакетов https://chocolatey.org/packages.
Обновление и удаление программ установленных с помощью репозитория
Обновить программу установленную с помощью Chocolatey очень легко. Для этого в PowerShell можно выполнить команды:Для обновления всех программ — choco upgrade allДля обновления только браузера Chrome — choco ugprade googlechromeДля того, чтобы просто проверить, есть ли обновления для установленных программ, без самого обновления, можно воспользоваться командой choco outdatedДля удаления программы выполните команду choco uninstall «имя программы», например для Google Chrome это будет команда choco uninstall googlechrome
Другие полезные команды
Есть ещё команды, которые возможно будут вам полезны. Команда choco list -lo выводит список всех программ установленных в систему из менеджера пакетов.Поиск программ в репозитории можно произвести командой choco search «имя программы». Если нужная программа есть в хранилище, то мы получим его имя и уже потом легко сможем его установить.
Графический интерфейс Chocolatey
Для тех пользователей, которые не привыкли использовать командную строку есть графический интерфейс Chocolatey. Для его установки, вам, все же придется сначала установить стандартный версию, а потом с помощью команды choco install chocolateygui установить графический интерфейс.Если увидите строчку Do you want to run the script?(es/ll — yes to all/o/rint):, то наберите букву «Y» и снова нажмите «Enter».Запустить графический интерфейс можно с помощью ярлыка «Chocolatey GUI» в меню Пуск. У Chocolatey GUI есть некоторые ограничения в отличие от консольной версии, но с каждой версией в него добавляют новые возможности. На данный момент он умеет:
- Отображать список программ, установленных на локальном компьютере из репозитория
- Устанавливать / удалять / обновлять / закреплять / откреплять пакеты Chocolatey
- Добавлять / удалять источники
- Включать / отключать функции Chocolatey
- Изменять значения конфигурации Chocolatey
- Изменять отображение на Список и мозаичный вид установленных / доступных пакетов
В графическом интерфейсе слева в боковом меню, нажав на кнопку Chocolatey можно просмотреть каталог программ. Здесь можно искать программы и установить нужную одним кликом, не используя консольную оболочку PowerShell. А выбрав вкладку Этот ПК слева вы увидите все программы, которые были установлены в систему с помощью Пользуйтесь этим инструментом друзья. Он достоин этого.
Comparison
How is Chocolatey different than OneGet/PowerShell Package Management?
OneGet is a package manager manager, which means it is not really a package manager at all. Chocolatey will have a provider that plugs right into OneGet. At the current time there is a CTP available, but it is based on 2 year old Chocolatey technology (we’ve had security fixes since then, plus a world of features), so we can’t really recommend it. But if you must use it, make sure your PowerShell execution policy is set correctly and you are in an administrative console. See http://www.hanselman.com/blog/AptGetForWindowsOneGetAndChocolateyOnWindows10.aspx for more details.
Use ChocolateyGet for now.
How is Chocolatey different than NuGet and/or OpenWrap?
Chocolatey is a machine package manager. Where NuGet/OW are focused on developer library packages, Chocolatey is focused on applications and tools, and not necessarily developer focused.
A typical way of stating the difference is «Developers use NuGet to get 3rd party libraries that they use to build the .NET tools and applications that they release with Chocolatey!»
How is/will Chocolatey be different than apt?
- Chocolatey does not support the idea of source packages, which are packages that must be built to be used. For someone interested in that, check out https://github.com/Microsoft/vcpkg.
- Library packages are not completely off the plate, but mostly. How would you link the library up to the application/tool?
Where are Chocolatey packages installed to?
Chocolatey packages are installed to , but the software could go to various locations, depending on how the package maintainer created the package.
Some packages are installed under , others — especially packages that are based on Windows installers (.msi files) — install to the default path of the original installer (which is most likely within ).
There are also packages for which you can set a custom installation path. These packages (like ruby) use the environment variable. If this variable does not exist, it will be created as e.g. . To change this behaviour, you can set to an existing folder, e. g. . Packages that use the environment variable, will then be installed in the given subfolder, f. ex. .
Can I use Chocolatey with existing installed software?
Yes, yes you can. Chocolatey works in a similar manner to how you would do things if you downloaded and installed things yourself. Its design and infrastructure is built that way on purpose. It takes the pain of manually doing it yourself away (see previous section).
Now, Chocolatey can take over existing installs and be able to handle uninstalls in most cases. Can is very dependent on packaging and the underlying software installer that is used for the install ( are the context here).
Let me start by saying that testing how a single package won’t give you a warm and fuzzy about how it will work with all packages. Software installers in the wild world of Windows have many completely different ways of going about things, all of which are dependent on those creating the installers, none of which have a consistent standard (except maybe MSI). Welcome to Windows.
Now that we have baselined that — each piece of software out there is a special snowflake, so each package has to be able to account for differences in the installers.
So when a package takes over the existing install, if the registry snapshot doesn’t differ, it won’t be able to automatically uninstall it (if you have autoUninstaller turned on, check ). If there is no that would uninstall the software, choco won’t be able to uninstall it. At some point it will though, choco continues to get better at things. And at some point in the near future it will contain a check to do nothing for an install if a registry key exists (and record that for later uninstall).
The question I need to ask is whether you are worse off by adding choco into the mix? It handles upgrades for you. It brings about some level of consistency and a unifying interface to this madness that is the Windows installer infrastructure.
АЦРК: Многовариантный автоматический запрет редактирования (для конфигурации УТ 10.3)
В этой статье описывается усовершенствованная технология автоматической установки даты запрета редактирования
Во-первых, можно определить несколько стратегий запрета редактирования с разными параметрами. Например, запрет в днях, запрет доступа в предыдущие месяцы кварталы и т.п., с указанием отступа от текущей даты.
То есть для некоторых пользователей (рядовых менеджеров) при входе в базе будет устанавливаться запрет по вчерашний день, для других (старших менеджеров) на 5 дней назад, для третьих (администраторов базы или руководителей отдела) — запрет предыдущего месяца с отступом в 10 дней..
Во-вторых, запрет будет устанавливаться для ВСЕХ без исключения пользователей базы данных. Для самых привилегированных это будет максимальная глубина, но запрет будет установлен.
Управление этой системой осуществляется через механизм дополнительных прав пользователей.
При необходимости пользователь с полными правами может открыть для себя закрытый период, но только на текущий сеанс работы.
1 стартмани
Using Chocolatey
Now that you have Chocolatey on your machine (need to install?), you can run several commands.
Take a look at the command reference. We are going to be using the install command.
Let’s install Notepad++.
- Open a command line as an administrator.
- Type and press Enter.
- That’s it. Pretty simple but powerful little concept!
Overriding default install directory or other advanced install concepts
- Yes we support that through the use of install arguments — see
- If you wanted to pass native argument to the installer, like the install directory, you would need to know the silent argument passed to that particular installer and then you would specify it on the command line or in the packages.config.
- If it was an MSI, then usually you could pass (for cmd.exe, it’s different for PowerShell). See for specifics on passing quoted values through.
- For example, Notepad++ uses the NSIS (NullSoft Scriptable Install System) installer. If we look at the silent options, we see that is how we influence the install directory. So we would pass -note that we are looking at the specific package over the virtual (although you can do the same with notepadplusplus as well).
Is there a better way? Absolutely, see ubiquitous install directory switch!
Централизованное управление кластером 1С Предприятия, состоящим из нескольких рабочих серверов, работающих на платформе GNU/Linux
При эксплуатации крупных информационных систем, в состав которых могут входить десятки серверов 1С Предприятия, зачастую возникают ситуации, требующие однотипных действий на всех серверах кластера 1С Предприятия или на всех серверах контура. В настоящей статье представлен способ централизованного управления серверами 1С Предприятия, работающими на платформе GNU/Linux. Подобный подход может быть использован и для других задач, возникающих в процессе эксплуатации крупных систем, с целью сокращения как временных затрат специалистов, так и времени простоя системы.
1 стартмани
Additional Configuration
Looking for where the apikey is and how it is changed, that is all done through the web.config. The config is pretty well-documented on each of the appSettings key values.
To update the apiKey, it is kept in the web.config, search for that value and update it. If you reach out to the server on https://localhost (it will show you what the apikey is, only locally though).
Performance
To configure for performance, you will want to do the following:
- Keep the site warm (https://serverfault.com/a/595215/79259):
- Turn on Application Initialization in Windows Features under Web Server (IIS) → Web Server → Application Development → Application Initialization (you can also try )
- Application Pool Advanced Settings:
- General: Start Mode → Always Running
- Process Model: Idle Time-out (minutes) → 0
- Recycling: Regular Time Interval (minutes) → 0
- Under the Site’s Advanced Settings:
Future
We are looking to add support for the package source to automatically handle this aspect — http://blog.nuget.org/20150922/Accelerate-Package-Source.html
Configure Simple Server alongside WSUS admin-site
If you are running Chocolatey Products, namely Simple Server or Central Management, next to a WSUS admin-site, you need to change some settings in the IIS-Configuration for making the Simple Server/Central Management Web interface work correctly again.
This is due to the fact that the WSUS admin-site installation registers two modules in the IIS root configuration, which will be passed down to all other sites running on that IIS instance, including the Simple Server and Central Management sites.
To make things work again, you will need to disable inheritance for these modules in order to remove them from the Chocolatey product site you are working with.
Before making changes to your IIS configuration, read all steps carefully and make sure that you have a backup
You can do this either by PowerShell:
or manual:
- Open the IIS Management Console
- Click on the server name on the upper left pane
- On the right pane double-click on . All available modules will show up
- Search for , right-click it and choose
- Do the same for
- Under on the left pane click on the site for your Chocolatey Simple Server, most likely
- Again, search for on the right pane and double-click it
- Search for , right-click it and choose
- Restart the Chocolatey Simple Server/Central Management site
The website should now be able to handle requests correctly again.
Chocolatey Installation
The request was aborted: Could not create SSL/TLS secure channel
If you see the following: Exception calling «DownloadString» with «1» argument(s): «The request was aborted: Could not create SSL/TLS secure channel.» then you are likely running an older machine that needs to be upgraded to be able to use TLS 1.2 at a minimum.
Chocolatey.org now requires TLS 1.2 at a minimum. Please see https://chocolatey.org/blog/remove-support-for-old-tls-versions. The post provides options if you have older clients that need to install Chocolatey.
The underlying connection was closed
If you see an error that looks similar to the following:
Chocolatey.org now requires TLS 1.2 at a minimum. Please see https://chocolatey.org/blog/remove-support-for-old-tls-versions. The post provides options if you have older clients that need to install Chocolatey.
Terminology
Software and Package are not terms used interchangeably in the Chocolatey community. It’s important to understand the distinction between them and how they are related.
- Chocolatey — Windows package manager for software management, can also be considered a framework
- Chocolatey.org — Website that is one stop shop for Chocolatey information and contains a community maintained package repository. It is important to understand that Chocolatey and the community feed are not intertwined, they are not the same thing. See community feed disclaimer to get a better understanding.
- NuGet — Framework and .NET package manager for software libraries. Chocolatey uses the NuGet packaging framework
- Package — See . Packages can contain the software they represent and the final location of software may or may not be in the package.
- Software — Software refers to the actual runtime software that a package represents. This can be installed to the system through native installers, or come from zip/archive files or just dropping the runtime software right into the package.
- Native Installer — Actual installers that install software into Programs and Features, «natively» on a Windows machine. This is like MSI, InnoSetup (exe), NSIS (exe), InstallShield (exe/msi), etc. Windows has over 20 different installer formats.
- Install Package — packages that wrap native installers
- Portable Package — packages that use zip or just contain the runtime software. Usually these packages do not require administrative privileges to install or run. See
- Extension Package — packages that provide extensions to Chocolatey’s PowerShell module through additional PowerShell modules.
- Template Package — packages that have packaging templates in them, used in package creation. See create your own package templates.
- Metapackage — packages that only exist to take dependencies on other packages, usually as a way of providing one command to get a complete setup. Some metapackages exist to provide discoverability, such as «git» versus ‘git.install.» The git package just depends on git.install, so running the install for either package will result in the git software being installed on the machine.
- Virtual package — a concept that a package can «provide» some functionality and any package that meets that provides will be considered a dependency met. For example, if you need to take a dependency on a pdf reader, you wouldn’t want to take a hard dependency on AdobeReader, but instead you would hope that adobereader provides pdf as well as other packages like SumatraPDF and FoxitReader. Then you could take a dependency on pdf and if any of those packages are installed, the dependency is met. Otherwise an algorithm would determine which one to install. THIS IS NOT IMPLEMENTED AT THIS TIME WITH CHOCOLATEY.
Recommendations
From the Chocolatey Software team, our current recommendations for organizational use are Artifactory, Nexus, or ProGet. All are quite robust, and two of those options can be used without cost. For more information, see .
Known Hosting Options
Some of these options also work from a non-Windows hosting perspective. See .
- File Share\UNC share (below)
- SCCM Distribution Points (when used as a file share)
- Chocolatey.Server (supported by Chocolatey Software with your Chocolatey for Business subscription)
- Sonatype Nexus — Nexus2 / — Sonatype Nexus has a built-in simple server
- ProGet — ProGet gives you a ready to go On-Premise option. Enterprise has replication
- Artifactory Pro — see Artifactory NuGet Repositories
- MyGet — MyGet offers public and private cloud-hosting options if you don’t want to handle all of the pain of setup and administration. MyGet offers some stellar options like multi-feed aggregation, mirroring, and source package build services!
- TeamCity has built-in Simple Server
- NuGet.Server
- NuGet Gallery
- Chocolatey Gallery
- Visual Studio Team Services (use NuGet v2 urls)
- Cloudsmith — Cloudsmith is a universal, cloud-native package management solution for Deployment or Distribution. All your packages, in any format, including Chocolatey, NuGet and Powershell, in one location and accessible across the organization.
Others
These are other known servers, but we don’t know the quality or compatibility of these frameworks as they relate to Chocolatey packages.
- Klondike — Ember front-end that builds on NuGet.Lucene for private NuGet package hosting
- PHP NuGet — Simple server built in PHP
- LaGet — A NuGet server written using the Laravel PHP Framework
- Hazel — Simple server built in Rust
Requirements
Chocolatey Clients
With Chocolatey clients, we ensure that Chocolatey is going to run with low memory footprints because you will have all aspects of things you will need to manage and different space and memory available across all of those clients. Chocolatey has a very wide reach into where it can be installed.
For Chocolatey clients, you will need the following:
- Windows 7+/Windows 2003+ (Server Core also, but not Windows Nano Server)
- Windows PowerShell v2+ (not PowerShell Core aka PowerShell 6 yet)
- .NET Framework 4.x+
Chocolatey Components
- Chocolatey CLI aka choco (or choco.exe) is a client (not a Windows service) that provides the core of Chocolatey and the installation store for locally installed packages. This is important as Chocolatey manages packages, not Programs and Features directly — Programs and Features is limited only to software that has «installers» and Chocolatey treats all aspects of Windows software as first class citizens (zips, scripts, binaries, installers), thus it needs to track and manage those things separately.
- Chocolatey GUI is an application that runs when a user runs it (also not a Windows Service).
- Chocolatey Agent (aka chocolatey-agent) is a Windows service available in Chocolatey for Business. It is used for Self-Service Installation and Chocolatey Central Management.
Space Requirements
- Chocolatey CLI has an impact of 15 MB on default install plus the space the installed packages use up.
- Chocolatey GUI takes up another 50-100 MB of space on default installation.
- Chocolatey Agent (aka chocolatey-agent) is a Windows service available in Chocolatey for Business — it has an impact of about 10 MB.
RECOMMENDATION: We recommend enough free space for the applications you will install plus another 1 GB for allowing Chocolatey to process that. You will want to turn on Package Reducer (commercial editions) if you have it to really reduce the impact of embedded packages, which bring reliability but also increase footprint (unless you have Package Reducer). If you don’t have Package Reducer and you are embedding binaries into nupkgs, you will need 3 times the space of what you are installing unless you explicitly clean up the extracted installers/zips in your automated scripts — then you will need 2x the space when considering the nupkg will still contain embedded binaries (and the nupkg must stick around). Unfortunately, this is going to be a calculation to understand exact space requirements and it really depends on what you will install.
Memory Requirements
- Chocolatey CLI only runs when called. It falls into managed memory thus can work in environments with low amounts of memory provided that they have enough memory available to manage software installations.
- Chocolatey GUI only runs when the application is open and is also in managed memory. It can work on systems with low amounts of memory.
- Chocolatey Agent (aka chocolatey-agent) — it is always running but has a very low footprint unless it is processing something.
RECOMMENDATION: At least 2GB of RAM at a bare minimum, but recommend at least 8GB for managing installations.
Chocolatey Repository Servers
Unforunately it’s harder to make recommendations here as it is really dependent on the repository that you choose and what requirements they have. It varies from a Windows deployment to Linux deployed repositories, from Java-based, to .NET-based, to PHP, and Rust-based repositories. The requirements vary wildly, plus you may use those repositories that address multiple types of packages and would need to figure out the space available for that.
SPACE RECOMMENDATION: Have enough space for 10x the size of the installers and other software you will store. This will allow for some default growth. We would recommend 100 GB at a minimum.
We’ve compiled a list of requirements for . Chocolatey Simple Server (Chocolatey.Server) can be put on really minimum hardware that could be 1-2GB of RAM, low CPU, and as little as 5 GB of space (number of packages you store will drive this). You will just want the network transfer to be fast.
Requirements coming soon. Just imagine normal recommendations for an ASP.NET IIS deployment, a SQL Server back end, and 1+ Windows Services (depending on scale).