Cygwin package management
In cygwin, how do I:
- List all installed packages
- List files belonging to a package
- Tell which package a file belongs to
- Install a new package
- Uninstall a package
- Get info about an installed package (deps, version, etc)
List all installed packages
cygcheck --check-setup --dump-only
- without
--dump-only
the command will take few minutes to complete because it will TEST all packages. You should see an OK for each package if everything is fine ;)
List files belonging to a package
For package bash
do:
cygcheck --list-package bash
- it works for installed packages only
Tell which package a file belongs to:
For file /usr/bin/bash.exe
cygcheck --find-package /usr/bin/bash.exe
- it works for installed packages only
Install a new package
Considering you already run setup GUI and have valid mirror(s), local package directory and other options set, you could run to install abook
:
/path/to/setup-1.7.exe --quiet-mode --download --local-install --packages abook
- it will also automatically update all your installed packages to the latest version available
- you could also select the mirror and other options in command line, see
/path/to/setup-1.7.exe --help
- I know the new version of cygwin 1.7 (beta version, but pretty stable) which currently uses setup 2.649 supports these options, but I didn't tested on 1.6
Uninstall a package
As far as I know, only the GUI supports this option.
Get info about an installed package (deps, version, etc)
The version is listed together to each package on the listing (first item). Deps are really tricky to find: when setup runs, it creates on the local package directory one entry for each mirror. There you can find the list of all packages available on that mirror (setup.ini for version 1.6 and setup-2.ini for version 1.7) with the package name preceded by a@
and deps preceded by requires:
. If, for any reason, the mirror you are using is outdated, setup displays a warning message when downloading info.
Run setup.exe. It will give you a GUI with checkboxes for various packages.
I have found apt-cyg useful for command line installation of packages without updating all my other packages but it does not everything you need to do.