11 ms·
Gow – The lightweight alternative to Cygwin
- chrisballinger 15y agoHow does this compare to the MinGW/MSYS (http://mingw.org http://mingw.org) project?
- DiabloD3 15y agoI was about to ask the same question. MinGW is already the lightweight alternative to Cygwin, and has largely taken over for the task of compiling unixy things on Windows. The major difference between MinGW and Cygwin is MinGW tries to use native Microsoft libs by dummy wrapping them (like, MS's libc is often compatible with POSIX standard stuff, the POSIX version merely starts with _ frequently, MinGW uses this fact). Most stuff that won't compile "natively" on Windows through Visual C's compiler, those projects use MinGW, I never hear of anyone using Cygwin especially because of the requirement of shipping the Cygwin runtime dll (of which MinGW has none). Even Strawberry Perl, the Perl distro for Windows, uses MinGW to compile XS perl modules from CPAN.
- wyz 15y agoThe biggest difference to me is: Gow is amazingly FAST! I have used MinGW and it is extremly slow, I need to always remind myself to use dir instead of ls, otherwise it's a few seconds' wait. However, I do not think Gow is able to compile. (I did not really look into the documentation as github is blocked in my office.) Another difference is MinGW appears to provide more up-to-date binary. e.g. bash in MinGW is 3.1 and in Gow is 2.03. And vim in Gow is 6.3 only.
- alexchamberlain 15y agoSorry, but... GitHub is blocked in your office!?!
- guan 15y agoIs there an SSH server for Windows that will work with this?
- buu700 15y agoOr an SSH client which can be called by the gow shell?
- ComputerGuru 15y agoIn reply to both yourself and guan, the answer is openssh: http://sshwindows.sourceforge.net/ http://sshwindows.sourceforge.net/ While it is built with cygwin, I believe it's statically linked to get rid of the dependency hell. You don't have to take into consideration that it is a cygwin binary.
- barrkel 15y agoCygwin sshd is not statically linked.
- ComputerGuru 15y agoI can no longer edit my answer, but I just downloaded it and extracted the setup archive - you're right. OpenSSH for Windows is not statically linked to cygwin. I do, however, still think it's possible to statically link OpenSSH with Cygwin, in which case it would become the answer to the original question.
- andrewf 15y agoKpyM seems to do a decent job of providing SSH access to a cmd.exe prompt (and anything you care to run from one). It's free although the provided binaries do an annoying nagware thing on login. I've been using it for SCP access to Windows servers. http://www.kpym.com/2/kpym/index.htm http://www.kpym.com/2/kpym/index.htm
- j_s 15y agoSemi-related: PowerShell Server, a commercial Windows SSH server with a free restricted license (notably a single connection and only password authentication): http://www.powershellinside.com/powershell/ssh/ http://www.powershellinside.com/powershell/ssh/
- xpaulbettsx 15y agoWe really need to port Homebrew to Windows so that projects like this can be the base, but people can pull in packages on top of it, like a lightweight Cygwin but more Windows'y.
- tikhonj 15y agoDoes porting Homebrew make any more sense than porting something from Linux (for example)? My impression is that the Mac OS ones aren't as good. A package manager really sounds like the sort of project where the incompatibilities between *nix and Windows are large enough that writing a new one would make more sense. I think there are even existing projects like that for Windows; I remember seeing one on HN a while back, but can't recall the name.
- natesm 15y agoThe advantage of Homebrew is that it is modern, small, and simple. Obviously apt is better, but apt also requires that you maintain a large repository of binaries. Homebrew is slow[1], but because it builds from source it is trivial to create a new package. Homebrew packages are just Ruby files. If the project uses Autotools, all you generally need to do is enter the URL, an md5, and the dependencies, then it Just Works. If it uses waf or something it's still just a simple modification. Instead of reinventing its own selfupdate functionality, Homebrew just uses git. Updating Homebrew is really just fast forwarding a git repository. Finally, the maintainers explicitly do not duplicate the libraries/tools that ship with OS X. This is a big step up on OS X from Macports, which installs itself in /opt/local and rebuilds everything possible. Homebrew is instantly understandable. Packages are files, you just match them by name. apt is admittedly more complex, but at least you get something for that complexity. [1] really what's slow is building from source. Homebrew itself is very fast.
- nupark2 15y agoEverything you just said (packages are files, simple, uses existing tools for self update) applies to MacPorts too. The only real differences seem to be the use of Ruby, and an attempt to avoid replacing OS dependencies -- even if the replacements are newer. In fact, MacPorts actually supports generating Debian packages and an apt repository straight from its port files. As for Windows, Cygwin already provides binaries. An apt repository of them would be great. I'm not convinced porting homebrew or MacPorts makes sense, however -- they're both fairly Mac-focused.
- swah 15y agoWhat is the use case for Cygwin in the days of virtualbox/vmware?
- Vivtek 15y agoRunning Unison for easy local mirroring/backup, if nothing else.
- RexRollman 15y agoBecause not everyone want to emulate an entire PC just to run a Unix command?
- charliesome 15y agoGit
- MatthewPhillips 15y agoThat's available on Windows natively.
- charliesome 15y agoReally? I wasn't aware... since when?
- atambo 15y agohttp://code.google.com/p/msysgit/ http://code.google.com/p/msysgit/
- charliesome 15y agoMSYS is just as native as Cygwin
- ComputerGuru 15y agoNot true. MSYS is mainly wrappers around existing, native WIN32/MSVCRT function calls.
- earl 15y agoA somewhat heavier version of cygwin, in which everything will work the way it's supposed to: http://www.centos.org http://www.centos.org I kid, I kid...
- jurjenh 15y agoThen there's always colinux - where you can have both, at the same time, without virtualization.
- RexRollman 15y agoI was surprised that colinux wasn't more popular than it is. I remember thinking it was a pretty good idea when it was announced.
- shadowfox 15y agoIt has been on and off in its quality.
- mkl 15y agoColinux doesn't run in 64 bit Windows, unfortunately.
- haridsv 15y agoThere is someone paying to do this port right now: https://www.odesk.com/jobs/Port-linux-bit_~~2416926dd8d9a963?_redirected https://www.odesk.com/jobs/Port-linux-bit_~~2416926dd8d9a963... In my last job, I used colinux with Windows 7 and it was a match made in heaven. But when I moved, I had to choose the next best thing, which is Mac OS X, because of lack of support for 64-bit windows.
- swah 15y agoBut then you can't run a decent Window Manager like Windows 7.
- ez77 15y agoOh, heretics! How dare they leave ed out of the list [1]? [1] https://github.com/bmatzelle/gow/wiki/executables_list https://github.com/bmatzelle/gow/wiki/executables_list
- joshu 15y agoED IS THE STANDARD UNIX EDITOR! IT MAKES THE SUN SHINE AND THE SKY BLUE AND THE GRASS GREEN!
- swah 15y agoI DON'T NEED TO SEE THE STATE OF THE FILE! I KNOW THE STATE OF THE FILE! I JUST NEED YOU TO CHANGE THE FILE.
- william42 15y agowilliam@aldebaran ~ $ ed bash: ed: command not found
- xfs 15y agoHere is the joke: http://www.gnu.org/fun/jokes/ed.msg.html http://www.gnu.org/fun/jokes/ed.msg.html
- RexRollman 15y agoI recently decided to learn ed, as I felt it couldn't hurt to be familiar with it, and I was surprised to see that it wasn't installed in Arch Linux by default.
- chalst 15y agoIf one has bash as the default shell, why not ex as the standard line-oriented text editor? Postscript - ex is the version of ed rolled up in vim, which extends the command set of ed. vi, by contrast, handles colon commands by invoking ed externally.
- 15y ago
- daemin 15y agoWell for a far more light weight solution there's GnuWin32 and GetGnuWin32 (which installs GnuWin32), both available via an easy Internet search. They both run from the command prompt and you don't need any other environment for them.
- malkia 15y agoCygwin is not perfect, but he's the thing that I prefer over other options. It's unix emulator layer, and as such tries it's best to emulate fork() - which the other alternatives does not even think to put in. VM is not a real alternative, as there is actually more work to be done to plumb source A with tools B from the VM. I don't use cygwin from bash, but rather start it directly from the FAR manager (console based Norton Commander/Midnight Commander application for Windows). It's very useful, as a lot of commands just work. Then there are others, which are some kind of symlink (one of the downsides of cygwin for me), but that's understandable. Symlinks as they are on linux are just starting to appear on Windows Vista and 7 (and I'm not even sure how compatible they are). So for such cases, sh -c would work. For example checking out latest SDL using cygwin, but from the command-prompt: c:\p\sdl> sh -c "hg pull -u" And then other stuff works even better: c:\p\libzmq> git pull -u c:\p\libzmq> sh -c "gitk --all"
- ComputerGuru 15y agoRegarding symlinks on Windows: http://neosmart.net/blog/2006/vista-symlinks-revisited/ http://neosmart.net/blog/2006/vista-symlinks-revisited/ And an open source (MIT) binary-compatible implementation of ln for Windows Vista+ using native WIN32 APIs: http://neosmart.net/blog/2011/open-source-100-compatible-ln-for-windows-and-junction-point-library/ http://neosmart.net/blog/2011/open-source-100-compatible-ln-... disclosure: my site
- malkia 15y agoThanks a lot! SysInternals, NirSoft tools and anything that I can find for Windows is very very much appreciated. (At home I'm sticking to OSX and Ubuntu, but at work the situation is rather different - I'm often finding myself arguing with myself - at home I prefer gnome/gtk, at work I better stick to Windows.Forms, hehehe).
- bbulkow 15y agoThe real point: 1) if you want to program in "gnu", run unx, and if you want Windows as your host OS, run virtualization; (yes, you need 8G, yes, you should have an SSD, if you don't, buy a new laptop for $700 and run linux native) 2) if you want a better command line, There's lighter weight ways like http://unxutils.sourceforge.net/ http://unxutils.sourceforge.net/ http://gnuwin32.sourceforge.net/packages/coreutils.htm http://gnuwin32.sourceforge.net/packages/coreutils.htm ... and a set of binaries I found 5 years ago that seem to have vanished, works OK for me.
- keshet 15y agoNo awk? I'm outta here.
- markokocic 15y agoI understand why someone wouldn't like to use cygwin, but why new project? MSYS/mingw-get are active projects that provide a good base to build upon. Why not helping improve it? Unix tools on Windows is niche enough so that choice only leads to fragmentation, not competition.
- vog 15y agoThis is exactly what I also thought when I read the headline. And this becomes even more strange given that they are almost certainly building upon using MinGW.
- zoobert 15y agoWould be good to have a standard ssh client similar to the ones in linux and other unixes. I use Cygwin mainly for that. I do not want to do putty -ssh ... and I want to copy my keys and other config in ~/.ssh. Like that I can "standardize" the way I setup my accounts on cygwin and linux. Without that it is kind of a big hassle
- 4ad 15y agoI find it strange that no one is mentioning UWIN[1], started by David Korn about the same time and with the same goals as Cygwin. I used to use it. I liked the fact that it used the host compiler instead of gcc, plus I preferred the non-GNU tools. Now I'm using Inferno, it works much better. It's not Unix, it's Plan9, but I view that as a plus. Of course cygwin can install all kinds of Unixy tools, like gcc, openssh, xterm and whatnot. Inferno doesn't come with anything, but I don't need anything except the basic Plan9 tools. [1] http://www2.research.att.com/~gsf/download/uwin/uwin.html http://www2.research.att.com/~gsf/download/uwin/uwin.html
- RexRollman 15y agoYou run Inferno on top on Windows as an application? I have read that this is possible but I have never seen anyone doing this, not even in a screenshot. If so, what's your opinion of it as an environment? (By the way, Inferno's implementation reminds me of Niklaus Wirth's Oberon, which could also run as either an application or as an operating system.)
- 4ad 15y agoYes! Inferno can run both native, on the bare hardware, or hosted under Unix, Windows or Plan9. Most people run Inferno hosted because it's easy and you can benefit from the host operating system services as well. For me, it's the best environment because I can have Acme (the editor), Plan9 name spaces and the Plan9 tools which I am most familiar with on any operating system I use. You can use either full Inferno [1] or Acme SAC [2]. Hosted Inferno runs in a window, which feels awkward to me, so I use Acme SAC which is a native host window and I run the shell inside Acme. Acme is the only graphical Inferno program I care about anyway. [1] http://www.vitanuova.com/inferno/downloads.html http://www.vitanuova.com/inferno/downloads.html [2] http://www.caerwyn.com/acme/ http://www.caerwyn.com/acme/
- soapdog 15y agoThanks for the links. Can you elaborate more on what you like about Acme? I am not bashing it, I just want to know, never used Acme.
- deleted 15y ago[deleted]
- zem 15y agoanother interesting older project along the same lines is gnuwin32 [http://gnuwin32.sourceforge.net/ http://gnuwin32.sourceforge.net/]
- tommica 15y agoI DEMAND SUBVERSION!
- ams6110 15y agoA smtp client (e.g. something like msmtp or ssmtp) so scripts can send email easily would be a nice addition.
- niyazpk 15y agoNo support for Pipes. :(
- snotrockets 15y agoThis is not an alternative to Cygwin, and shouldn't be called such. Cygwin isn't a collection of binaries; that's a distribution. But the idea is to emulate UNIX, including fork(), etc., allowing you to easily recompile for Windows.
- mhartl 15y agoHas anyone used this to run Ruby on Rails? If so, I might want to recommend it in the next edition of the Rails Tutorial.