Skip to content

Full installation management via packages.config file #533

@gregsdennis

Description

@gregsdennis

Currently, the manifest file is merely a list of packages for chocolatey to install. However, it could be used to fully control what is installed on a machine.

For instance, suppose I have a bunch of machines with packages A1.0, B2.2, and C3.0. I would like to batch alter my machines by:

  • Upgrading A to 1.2,
  • Uninstalling B completely because I don't need it anymore, and
  • Rolling C back to 2.8

Right now, my only option for the uninstall would be a custom script, but the upgrade and (I believe) rollback can be handled by choco.

I would like to send just a manifest file that instructs choco to perform all three of these actions.

I like the manifest file format, so I don't think that should be modified. (Especially since it's basically Nuget's packages.config.)

Instead of modifying the manifest, the feature could be as simple as adding an install switch like -image or -full that works with manifest files to indicate that the manifest contains the desired state of all packages installed on the machine. Choco would then uninstall any packages not listed.

packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="a" version="1.2.0"/>
  <package id="c" version="2.8.0"/>
</packages>

command line:

choco install "packages.config" -image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions