Steps to install tmux in Cygwin
java.ociweb.com
java.ociweb.com
For example:
Start your new Ubuntu machine...
$ vagrant init precise32 http://files.vagrantup.com/precise32.box
$ vagrant up
SSH in..
$ vagrant ssh
And install tmux
$ sudo apt-get install tmux
*note: these commands are off the top of my head, please read the getting started guide for proper instructions.
The supplied hardware at these gigs didn't really have the spec for spinning up VMs - this also spared me from fiddly network and other shared resource setup.
I even had a "portable" cygwin install on a USB stick.
Seriously, though. If you have machines with lower-end resources, who wants to to wait on a VM. Plus I wouldn't trust testing to a virtualized machine. I wouldn't release software without testing it on a real box.
Plus, you get cron, sshd, and most importantly a bash shell that works much like it does on Linux. For people who prefer a Linux-like environment, but have to deal with Windows (for work, or for whatever reason), Cygwin is a must-have, IMHO.
Wouldn't release software without testing it on a real box? We run all our production software on EC2.
Much like it does on Linux? Oh no. Oh no. You are lost my friend.
Cygwin is not UNIX. It looks like it and runs UNIX tools but it has some gotchas that can shoot you in the toes and face if you move your stuff to another box.
I don't have any problem moving things from box to box. If I administer a Windows machine, it will almost always have Cygwin on it. I do development and administration on them all the time. I'd be curious to know what kind of "stuff" you were moving to another box that gave you trouble. Perhaps you were talking about moving executables/DLLs between different versions of Cygwin. I keep my machines mostly on the same version of Cygwin, and I'm not developing Cygwin-specific applications, so I'm not linking to the Cygwin DLLS, so I don't have problems with that.
NO that's NOT what I meant.
I meant that I wouldn't release software that was designed to run on, say Windows XP/7/8.x/..., without running it natively on a machine running those operating systems.
I was NOT talking about virtualized Linux systems. I was talking about desktop software (since we were talking about Cygwin, I guess I thought that would be obvious, but perhaps I should have spelled that out).
Yes, people do still write software for desktop operating systems (I realize that's a shock, and "how 1994 of them!", etc). Yeah, it is nice to have Virtualbox or VMWare, etc to test and debug on (so if something hoses the OS, you don't have to reboot the hardware, and stuff like that), but if the app is targeted at a desktop OS, I'll be testing it in a non-virtualized environment at some point. I wouldn't rely strictly on testing in a Windows VM running in Virtualbox under Linux. Call me paranoid if you want, but I still think it makes good sense.
I do production stuff that runs on a Linux VPS also. That's an entirely different ball game. I'd have absolutely no problem releasing that software after only running it on a virtualized system. Of course, in that case, the target environment is a virtualized system, so the production environment is the same as the development environment.
So, that's my response to you if you were being serious. If you were just trying to be funny, then ... oh never mind. :-D
Then Git for Windows (which is built upon MinGW, and includes bash, grep and whatnot) + MinTTY is immensely more useful and lightweight than Cygwin.
Even when I do work in a VM, I use a Cygwin terminal and ssh client to connect to it. mintty is fairly amazing.
I work in the cygwin terminal as much as possible on my work Win7 box. I often do this from cygwin:
$ OurWindowsOnlyProprietaryLogReader someLog.log
which runs the windows program to process the log. Similar with Excel.I do also use a vagrant VM, but I rarely fire it up these days because I do a lot of what I just described. One reason I wanted vagrant was for tmux, and tmux on cygwin will be welcome.
Note that you can skip steps 2 and 3 if you install libevent-devel and libncurses-devel in step 1. The Cygwin provided versions of these packages are good enough (in fact, libevent is the same version.) Also, I didn't get any warnings when running autogen.sh, but I have all the available versions of autoconf and automake installed, so that might be why.
Anyway, these steps worked fine for me and I didn't even get any complaints at the autogen stage. It took about 40 minutes to get everything compiled and installed, which I didn't think was too bad on my ancient work machine.
Apparently tmux has worked under Cygwin for some time now - since July at least. The actual patch appears to originate here, and is a neat little read: http://sourceforge.net/mailarchive/message.php?msg_id=308508...
For any OSX users here, iTerm 2 has fantastic tmux integration. Simply launch tmux with the -CC flag (tmux -CC). iTerm 2 will open a new window for your tmux session. Tabs that are opened, split, etc. are created as tmux windows / panes and can be quickly restored upon resuming a tmux session.
Steps to install cygwin on actual linux? "(package manager) (install) tmux". And on OS X? Install brew by copy and pasting a command into terminal, then "brew install tmux". Even if you're an average consumer you could complete both of those steps without a problem. (Then again, why would the average consumer want tmux?) Windows/cygwin is the problem here, not linux.
They just suffer more!
(Note: I do both 50/50 and certainly don't prefer writing code on windows)
But what do I know, I use Cygwin. Also see why Linux != Cygwin below.
The platform as a whole stinks for programmability and I hate working with it.