Skip to main content

Extra Cygwin packages


Extra Cygwin packages

I'm a big fan of Cygwin on Windoze to get the Unix/Linux look and feel. I can't stand the Windoze command prompt and their Power Shell is ridiculous. I don't want to get on another rant but I thought Power Shell was supposed to be their attempt at making Windoze more like Unix but it isn't. Yes, I have looked into WSL and it's ok but I'll stick with Cygwin.
One of the things I don't like about Cygwin is that their default list of packages just isn't enough for me. After I install it on a new system, I often find myself adding additional packages one-at-a-time when I discover I need them. I finally decided to be a little proactive and keep track of packages I had to install.

It looks like my beautiful formatting of this page has been trashed somehow and I apologize for that. I'll work on it.

My extra packages


Package Comments
git
Gotta have this!
pip2
Yes, I'm still a proud Python2 guy! And yes, I'm well aware they plan to drop support pretty soon.
bc
This is used by my qbc script
unzip
If I had my druthers, all archives would be tarballs but you have to deal with zip files sometimes too.
libffi-devel
For Python cryptography package, used by my SecureKeyValues script
gcc
For Python cryptography package, used by my SecureKeyValues script
python27-devel
For Python cryptography package, used by my SecureKeyValues script
ping
What's that you say? Isn't there a ping command in Cygwin? Well, no, not really. They don't include one by default, probably because there's one in Windoze. I kind of knew they weren't the same but I delved a little deeper and the divergence was too much to bear! I don't like the Windoze version because:
  • Its command line processing is brain-dead and will accept ping -n 1 host but not ping -n1 host!
  • Some of the options are completely different. The Windoze option to control the number of pings is -n but it's -c on Unix
  • The general default behavior is different. The default behavior on Windoze is to ping four times and quit whereas Unix will ping forever.
  • The Windows version has no --version option and only produces a reasonable help message because it doesn't understand --help!
Ugh. No. No no no! Shenanigans! Shenanigans, I say!
make
Useful enough to install without a specific need but I needed it to install the Python paramiko package
wget
Useful

Cygwin install history

I could rely on my memory for some things I installed but I discovered from a Cygwin FAQ page that /var/log has a log file with history that's useful:

$ awk '{ if ($4 == "install") print $1 " " $2 " " $5 }' /var/log/setup.log
2019/08/13 16:11:57 base-cygwin
2019/08/13 16:11:57 cygwin
.
.
.
2019/08/13 16:11:57 openssh
2019/08/13 16:11:57 python2
2019/08/14 09:19:23 libbrotlicommon1
2019/08/14 09:19:23 perl_base
2019/08/14 09:19:23 rsync
2019/08/14 09:19:23 libgdbm6
2019/08/14 09:19:23 perl_autorebase
2019/08/14 09:19:23 libnghttp2_14
2019/08/14 09:19:23 libssh-common
2019/08/14 09:19:23 libunistring2
2019/08/14 09:19:23 publicsuffix-list-dafsa
2019/08/14 09:19:23 libssl1.0
2019/08/14 09:19:23 libbrotlidec1
2019/08/14 09:19:23 perl-TermReadKey
2019/08/14 09:19:23 perl-Error
2019/08/14 09:19:23 libgdbm_compat4
2019/08/14 09:19:23 libssh4
2019/08/14 09:19:23 libidn2_0
2019/08/14 09:19:23 libopenldap2_4_2
2019/08/14 09:19:23 perl
2019/08/14 09:19:23 libpsl5
2019/08/14 09:19:23 libsasl2_3
2019/08/14 09:19:23 perl-Scalar-List-Utils
2019/08/14 09:19:23 libcurl4
2019/08/14 09:19:23 git
2019/08/15 07:57:45 bc
2019/08/15 08:15:51 python27-setuptools
2019/08/15 08:15:51 python27-pip
2019/08/16 07:41:27 python27-pip
2019/08/16 07:41:27 unzip

$

Comments

Popular posts from this blog

Dynamic Python script loading

I have a bunch of toys and tools in a Git repository - I affectionately call this my toys repo . Most are just scripts that I use from a Unix (Cygwin or Git bash on Windoze) command line but there are some Python classes that I sometimes use in another script. Today at work, I was coming up with a new Python script that made use of a couple of my public classes. The script is good enough to share with my colleagues but I'm faced with the problem of my public classes: I imagine that most of my colleagues haven't even heard of my public classes and I don't expect them to download the entire repo just to get a couple of classes If I'm going to distribute the classes as separate files I introduce new problems: It could be confusing to have the files tag along. What is the user supposed to do with them? The answer is nothing - they should leave them alone and make sure they are in the same directory as the main script in case they decide to move th...

New Years Eve 2009

So this is my first blog entry!! It's New Years Eve and I've got a horrible cold so I'm staying in a lot. I had planned to see Avatar at the IMAX theater in Raleigh this afternoon but don't want to risk people exposing people to what I have. Also, I would probably annoy people with lots of nose blowing. I ordered tickets online and, using Craigslist , I arranged to sell them to someone else who can use them since the prime show times have been selling out. So... I have to wait to see Avatar. I still have foster cats Jack and Purrvis from the SPCA ... Jack gets supervised visits but I've had to defuse lots of situations: a couple of fights with Katie in the past week plus Sofi let out this noise I'd never heard before.... I didn't think she had it in her. So usually I just ferry Jack back into the bedroom and let them cool off. I just had to break up a prolonged fight so I may not let Jack out much until I take them back to the SPCA on Saturday. I went i...

Python ArgParse

Maybe it's my use of the getopt() function in C/C++ but in my Python scripts, I've always just made do with the native getopt package and it's served me well. Over time, people have encouraged me to look at using ArgParse but I've always been kind of resistant because it was a little mysterious to me. I finally sat down and figured out how to do basic things I do a lot in scripts using getopt and worked up a simple script using ArgParse to do the same thing. There are definitely some advantages to ArgParse ! Here's the gist with this sample: I've made a few updates to the gist as I discover new features of which I want to take advantage: Mutually-exclusive options Script description etc. I will admit that since I've created this gist, I've been using ArgParse for new scripts. I can't whip out a script using ArgParse from memory yet (which I can do when I use getopt !) but it's becoming easier. I haven't gone back and...