I look in on the Cygwin users' mailing list every now and again and I have a lot of respect for the devs and how they run their project, finding a usable middle ground between Windows and Linux (Cygwin at its core is a DLL that emulates POSIX and Linux-specific system calls).
The installer being the package manager threw me when I first started using Cygwin. However, when I researched the issue, I can see how the choice made sense. Unlike a Linux system, you can't upgrade the Cygwin DLL in-place while it's running.
apt-cyg [1] is a nice simple bash script for managing Cygwin packages. I find very useful for avoiding the GUI installer when I just need to add or remove a few packages. For software that doesn't require an upgrade of the Cygwin DLL, they can be installed / removed from inside Cygwin itself.
The installer being the package manager threw me when I first started using Cygwin. However, when I researched the issue, I can see how the choice made sense. Unlike a Linux system, you can't upgrade the Cygwin DLL in-place while it's running.
apt-cyg [1] is a nice simple bash script for managing Cygwin packages. I find very useful for avoiding the GUI installer when I just need to add or remove a few packages. For software that doesn't require an upgrade of the Cygwin DLL, they can be installed / removed from inside Cygwin itself.
[1] https://github.com/transcode-open/apt-cyg