How to uninstall packages that were installed as dependency but are no longer required

Achim Gratz
Tue Mar 30 17:47:18 GMT 2021

Marco Atzeri via Cygwin writes:
> as currently we are not tracking between choosen packages
> and installed by dependency, Cygwin is lacking such capabilities

We do, since this commit in 2016:;a=commitdiff;h=f6d6c600edffdb83a57ed13384e38a504fdc366b

However, it does only work if you pick by package and not by group and
it has not yet been sufficiently tested to invoke auto-removal of such
packages IMHO.  If you're adventurous you could recognitize these
packages as being installed as dependencies (maybe they already are, I
have not checked) and then in libsolv use the SOLVER_CLEANDEPS flag for
the solution so they can get removed if they are no longer part of a
dependency chain that leads to an explicitly installed package.

Setup has two command line options that somewhat deal with this problem,
both of them were implemented before setup gained the capability
mentioned above and none of them do directly what the OP was asking:

The option --delete-orphans / -o removes packages installed on the
system that are no longer available from the repository.

The option --prune-install / -Y will remove _all_ packages except the
ones that are explicitly requested via either --packages / -P or
--categories / -C.  I implemented this to enable up- and downgrading
installations in unattended mode when that includes removal of packages,
but that requires you to know the list of packages that you need to keep
including their dependencies.  I generate a new setup.ini with extra
categories for this purpose (each of the categories contains all
packages including dependencies for each type of install supported).

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf rackAttack:

More information about the Cygwin mailing list