Update 1/9/2014: TL;DR version: Go to bottom of this post for a way to get Cygwin to be able to call non-Cygwin programs.
After having spent the ti
I built Cash this year, a cross-platform implementation of Linux commands running on Node.js.
This supports both global installations of each command in your path
, or an interactive shell with full support for bash-like syntax, command piping, autocompletion and history.
This additionally runs win32 apps within the shell.
MSYS
There may be fewer "supported" packages, in that you have to install things by hand, but there won't be:
cygpath
is a non-solution, as you can't always shove it in)And there is much better interop with windows applications.
Cygnal is my project to create a modified Cygwin, serving as a run-time support library for applications intended to run as native Windows programs, following external conventions familiar to Windows users.
The idea is that you can use the full Cygwin environment to develop, using its default toolchain: the same compiler that makes Cygwin executables.
Then you can deploy your program as a Cygnal program by bundling it with the modified cygwin1.dll
from the Cygnal project.
This is especially useful for programs that have a lot of POSIX dependencies and need a decently feature-rich, good quality POSIX implementation.
The project lead doesn't appear to consider this to be a real problem, since they apparently don't really support running non-Cygwin programs from within Cygwin (surprise!).
By contrast, in the Cygnal project, this sort of thing is considered an issue for which a reasonable solution will be merged.
The best alternative I found is Gow (Gnu On Windows).
It's a lightweight alternative to Cygwin, about 10 times lighter. As far as I know the 130 tools installed with Gow are regular Win32 applications.
I used to use cygwin mainly for the X11 server feature. It was useful to run any tools on a remote server and export the display to local cygwin. I find that I can achieve the same thing using Xming server which is a lot lighter.