Table of Content

A portable devops tool set on windows, easy customization of cmder/console+msys2/cygwin.

Background

Cmder is a software package created out of pure frustration over absence of usable console emulator on Windows. It is based on ConEmu. There are two version of cmder: cmder with own Git for Windows and cmdermini without git and bash. I used cmdermini as lightweight xterm with bash/git from msys or cygwin.

Console is another lightweight windows console enhancement, supports multi-tabs.

Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows, also provides substantial POSIX API functionality.

MSYS is a collection of GNU utilities such as bash, make, gawk and grep to allow building of applications and programs which depend on traditionally UNIX tools to be present. It is lightweight *NIX shell on windows. The MSYS2 is an independent rewrite of MSYS, based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 with the aim of better interoperability with native Windows software.

What is portabledevops?

it is portable practice approach to integrate all portable devops tools into one portable folder running on usb or portable disk

portabledevops folder structure:

"drive":\portabledevops\
* productive tools
qdir/
7z/
filezilla/
scite/
sublimetext3/
calibre/
kitty/
putty/
greenshot/
imgburn/
freecommander/
brackets/
* nix
cygwin64/
msys64/
* shell
cmdermini/
console2/
* dev tool
python/
go/
Lua/
nodejs/
R/
ruby23/
* vm and docker tool
dockertoolbox/
vagrant/

portabledevops files list

portabledevops.sh – portable all-in-one customization setting for msys2/cygwin64
setup.sh – portabledevops deploy script
dockertoolbox.zip – collection of portable docker toolbox win binary files
README.md – this file

How to setup portabledevops?

It is pretty easy, the idea is to place all portable customization in one place, and flexible to any window DOS replacement – shell terminal like cmder, console etc.

create portabledevops root folder on USB drive

for example:

L:\portabledevops

make junction (directory hard link) for “Program Files”

it will make easy to find VirtualBox tools
from cmd.exe

mklink /j C:\Program_Files "C:\Program Files"
Junction created for C:\Program_Files > C:\Program Files
mklink /j C:\Program_Files_x86 "C:\Program Files (x86)"
Junction created for C:\Program_Files_x86 > C:\Program Files (x86)

install portable shell

L:\portabledevops\cmdermini # unzip cmdermini from [cmder_mini.zip](https://github.com/cmderdev/cmder/releases)
L:\portabledevops\console2 # unzip console2 from [console2 zip](https://sourceforge.net/projects/console/)

install portable msys2

  • download msys2-x86_64-xxx.exe from http://msys2.github.io/
  • install to default location C:\msys64
  • copy C:\msys64 to L:\portabledevops\msys64
  • uninstall msys64 from windows
  • launch msys2.exe from L:\portabledevops\msys64 folder
  • at bash shell, install necessary package for dev env on msys2
    pacman -Sy base-devel mingw-w64-x86_64-gcc python git zip unzip p7zip
    wget -qO- https://bootstrap.pypa.io/get-pip.py | python2
    

install portable cygwin64

  • download cygwin64 from https://www.cygwin.com/setup-x86_64.exe
  • move setup-x86_64.exe to L:\portabledevops\cygdev64 folder
  • click setup-x86_64.exe
    only install wget, choice install folder and package folder to L:\portabledevops\cygdev64,it will install cygwin 64 core package.
  • click Cygwin.bat to launch cygwin bash shell
  • install apt-cyg
    wget raw.github.com/transcode-open/apt-cyg/master/apt-cyg
    chmod +x apt-cyg
    mv apt-cyg /usr/local/bin
    which -a apt-cyg
    
  • install git, python-devel, gcc-g++, curl, dos2unix, zip, unzip
    apt-cyg install git python-devel curl dos2unix zip unzip
    
  • install pip
    wget -qO- 'https://bootstrap.pypa.io/get-pip.py' | python2
    

add cmder task

msys2 : cmd /c "%ConEmuDir%\..\..\..\msys64\bin\bash --login -i"
cygwin64 : cmd /c "%ConEmuDir%\..\..\..\cygwin64\bin\bash --login -i"

add console tab

msys2: cmd /c "\portabledevops\msys64\bin\bash.exe --login -i"
cygwin64: cmd /c "\portabledevops\cygwin64\bin\bash.exe --login -i"

deploy portabledevops using setup.sh script

open bash shell from cmder/console,

cd ~ ; wget -qO- 'https://raw.githubusercontent.com/robertluwang/portabledevops/master/setup.sh' | sh

The project source code is located at github, feel free to star and fork it.