{"id":13705459,"url":"https://github.com/vegardit/cygwin-portable-installer","last_synced_at":"2025-04-09T14:15:05.880Z","repository":{"id":21984898,"uuid":"94620204","full_name":"vegardit/cygwin-portable-installer","owner":"vegardit","description":"Windows batch file to perform unattended installations of a portable Cygwin environment.","archived":false,"fork":false,"pushed_at":"2024-01-22T20:21:44.000Z","size":246,"stargazers_count":196,"open_issues_count":0,"forks_count":41,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-04-02T13:04:17.694Z","etag":null,"topics":["ansible","aws-cli","bash","batch-script","conemu","cygwin","mintty","nodejs","portable","unattended-installations","windows-batch"],"latest_commit_sha":null,"homepage":"https://vegardit.github.io/cygwin-portable-installer/","language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vegardit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-17T11:42:38.000Z","updated_at":"2025-03-19T06:13:23.000Z","dependencies_parsed_at":"2023-02-11T07:00:44.005Z","dependency_job_id":"14b8c17e-e757-4cb7-aab7-5047fe681eb8","html_url":"https://github.com/vegardit/cygwin-portable-installer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vegardit%2Fcygwin-portable-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vegardit%2Fcygwin-portable-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vegardit%2Fcygwin-portable-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vegardit%2Fcygwin-portable-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vegardit","download_url":"https://codeload.github.com/vegardit/cygwin-portable-installer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248054193,"owners_count":21039952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","aws-cli","bash","batch-script","conemu","cygwin","mintty","nodejs","portable","unattended-installations","windows-batch"],"created_at":"2024-08-02T22:00:41.766Z","updated_at":"2025-04-09T14:15:05.861Z","avatar_url":"https://github.com/vegardit.png","language":"Batchfile","funding_links":[],"categories":["Batchfile"],"sub_categories":[],"readme":"# cygwin-portable-installer \u003ca href=\"https://github.com/vegardit/cygwin-portable-installer\" title=\"GitHub Repo\"\u003e\u003cimg height=\"30\" src=\"https://raw.githubusercontent.com/simple-icons/simple-icons/develop/icons/github.svg?sanitize=true\"\u003e\u003c/a\u003e \u003ca href=\"https://ansible.com\" title=\"Ansible\"\u003e\u003cimg align=\"right\" height=\"48\" src=\"https://avatars0.githubusercontent.com/u/1507452?s=48\u0026v=4\"\u003e\u003c/a\u003e \u003ca href=\"https://mintty.github.io/\" title=\"MinTTY\"\u003e\u003cimg align=\"right\" src=\"https://raw.githubusercontent.com/mintty/mintty/master/icon/terminal-48.png\"\u003e\u003c/a\u003e\u003ca href=\"https://conemu.github.io/\" title=\"ConEmu\"\u003e\u003cimg align=\"right\" src=\"https://raw.githubusercontent.com/Maximus5/ConEmu/master/logo/logo-48.png\"\u003e\u003c/a\u003e \u003ca href=\"https://www.cygwin.com/\" title=\"CygWin\"\u003e\u003cimg align=\"right\" height=\"48\" src=\"https://upload.wikimedia.org/wikipedia/commons/2/29/Cygwin_logo.svg\"\u003e\u003c/a\u003e\n\n[![Build Status](https://github.com/vegardit/cygwin-portable-installer/workflows/Build/badge.svg \"GitHub Actions\")](https://github.com/vegardit/cygwin-portable-installer/actions?query=workflow%3ABuild)\n[![License](https://img.shields.io/github/license/vegardit/cygwin-portable-installer.svg?label=license)](#license)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)\n\n1. [What is it?](#what-is-it)\n1. [Features](#features)\n1. [Installation](#install)\n   1. [Customizing the installer](#customize)\n1. [Update](#update)\n1. [License](#license)\n\n\n## \u003ca name=\"what-is-it\"\u003e\u003c/a\u003eWhat is it?\n\ncygwin-portable-installer is a self-containing Windows batch file to perform an unattended installation of a portable [Cygwin](http://cygwin.org) environment.\n\nThe installer has been implemented as a Batch script and not PowerShell script because in some corporate environments execution of PowerShell scripts is\ndisabled for non-administrative users via group policies.\n\n![Tabbed Terminal](docs/img/tabbed_terminal.png)\n\n\n## Features\n\n* **portable**: you can e.g. install it on an USB sticks and use the same configuration on different computers\n* **256-color multi-tabbed shell**: [ConEmu](https://conemu.github.io/) is pre-configured as terminal by default. Alternatively you can choose to use the single tabbed [Mintty](https://mintty.github.io/) terminal.\n* **command-line package installer**: [apt-cyg](https://github.com/kou1okada/apt-cyg) package manager will be automatically installed (opt-out via config parameter is possible)\n* **adaptive Bash prompt**: [bash-funk](https://github.com/vegardit/bash-funk) will be automatically installed (opt-out via config parameter is possible)\n* **[winpty](https://github.com/rprichard/winpty)** will be automatically installed (opt-out via config parameter is possible)\n* additional optional tools (opt-in via config parameter):\n    * [Ansible](https://github.com/ansible/ansible): deployment automation tool\n    * [AWS CLI](https://github.com/aws/aws-cli): AWS cloud command-line tool\n    * [Node.js](https://nodejs.org): JavaScript runtime\n    * [testssl.sh](https://testssl.sh/): command line tool to check SSL/TLS configurations of servers\n\n\n## \u003ca name=\"install\"\u003e\u003c/a\u003eInstallation\n\n1. Get a copy of the installer using one of these ways:\n   * Using old-school **Copy \u0026 Paste**:\n      1. Create a local empty directory where Cygwin shall be installed, e.g. `C:\\apps\\cygwin-portable`\n      1. Download the [cygwin-portable-installer.cmd](cygwin-portable-installer.cmd) file into that directory.\n   * Using **Git**:\n      1. Clone the project into a local directory, e.g.\n         ```batch\n         git clone https://github.com/vegardit/cygwin-portable-installer --single-branch --branch main --depth 1 C:\\apps\\cygwin-portable\n         ```\n1. (Optional) Open the file [cygwin-portable-installer.cmd](cygwin-portable-installer.cmd) in a text editor and adjust the configuration variables to e.g. set an HTTP Proxy, change the set of pre-installed Cygwin packages, select the terminal (ConEmu or Mintty), etc.\n1. (Optional) Temporarily disable your Antivirus scanner in case it is known to interfere with Cygwin, otherwise you may end-up with a broken/incomplete installation. See [cygwin.com/faq: What applications have been found to interfere with Cygwin?](https://cygwin.com/faq/faq.html#faq.using.bloda)\n   * For **BitDefender Antivirus** the **Advanced Thread Defense** protection feature needs to be disabled and not the **Antivirus \u003e Settings \u003e BitDefender Shield**.\n1. Execute the `cygwin-portable-installer.cmd`. This will automatically:\n    1. download the 32-bit or 64-bit Cygwin setup.exe depending on your OS\n    1. install [Cygwin](http://cygwin.org) with the pre-selected set of packages\n    1. install the [ConEmu](https://conemu.github.io/) tabbed terminal\n    1. create an init scripts that will keep the installation portable\n    1. install the [apt-cyg](https://github.com/kou1okada/apt-cyg) command-line package manager\n    1. install the [bash-funk](https://github.com/vegardit/bash-funk) Bash toolbox with it's adaptive Bash prompt\n    1. install [winpty](https://github.com/rprichard/winpty)\n    1. install optional tools:\n       1. [Ansible](https://github.com/ansible/ansible)\n       1. [AWS CLI](https://github.com/aws/aws-cli)\n       1. [Node.js](https://nodejs.org)\n       1. [testssl.sh](https://testssl.sh/)\n1. Now you can launch your portable Cygwin environment using the newly created `cygwin-portable.cmd` batch file.\n    ![Launch Script](docs/img/launch_script.png)\n\n\n### \u003ca name=\"customize\"\u003e\u003c/a\u003eCustomizing the installer\n\nYou can customize the installer by either directly modifying the default settings in the `cygwin-portable-installer.cmd` file,\nor by placing a separate file called `cygwin-portable-installer-config.cmd` next to it where some or all of these settings are overwritten.\n\nThese settings are currently available:\n\n```batch\n:: set proxy if required (unfortunately Cygwin setup.exe does not have commandline options to specify proxy user credentials)\nset PROXY_HOST=\nset PROXY_PORT=8080\n\n:: change the URL to the closest mirror https://cygwin.com/mirrors.html\nset CYGWIN_MIRROR=https://linux.rz.ruhr-uni-bochum.de/download/cygwin\n\n:: one of: auto,64,32 - specifies if 32 or 64 bit version should be installed or automatically detected based on current OS architecture\nset CYGWIN_ARCH=auto\n\n:: choose a user name under Cygwin\nset CYGWIN_USERNAME=root\n\n:: select the packages to be installed automatically via apt-cyg\nset CYGWIN_PACKAGES=bash-completion,bc,bzip,coreutils,curl,dos2unix,expect,git,git-svn,gnupg,inetutils,jq,lz4,mc,nc,openssh,openssl,perl,psmisc,python37,pv,rsync,ssh-pageant,screen,subversion,unzip,vim,wget,zip,zstd\n\n:: if set to 'yes' the local package cache created by cygwin setup will be deleted after installation/update\nset DELETE_CYGWIN_PACKAGE_CACHE=no\n\n:: if set to 'yes' the apt-cyg command line package manager (https://github.com/kou1okada/apt-cyg) will be installed automatically\nset INSTALL_APT_CYG=yes\n\n:: if set to 'yes' the bash-funk adaptive Bash prompt (https://github.com/vegardit/bash-funk) will be installed automatically\nset INSTALL_BASH_FUNK=yes\n\n:: if set to 'yes' Node.js (https://nodejs.org/) will be installed automatically\nset INSTALL_NODEJS=yes\n:: Use of the folder names found here https://nodejs.org/dist/ as version name.\nset NODEJS_VERSION=latest-v18.x\n:: one of: auto,64,32 - specifies if 32 or 64 bit version should be installed or automatically detected based on current OS architecture\nset NODEJS_ARCH=auto\n\n:: if set to 'yes' Ansible (https://github.com/ansible/ansible) will be installed automatically\nset INSTALL_ANSIBLE=yes\nset ANSIBLE_GIT_BRANCH=stable-2.14\n\n:: if set to 'yes' AWS CLI (https://github.com/aws/aws-cli) will be installed automatically\nset INSTALL_AWS_CLI=yes\n\n:: if set to 'yes' testssl.sh (https://testssl.sh/) will be installed automatically\nset INSTALL_TESTSSL_SH=yes\n:: name of the GIT branch to install from, see https://github.com/drwetter/testssl.sh/\nset TESTSSL_GIT_BRANCH=3.0\n\n:: use ConEmu based tabbed terminal instead of Mintty based single window terminal, see https://conemu.github.io/\nset INSTALL_CONEMU=yes\nset CON_EMU_OPTIONS=-Title cygwin-portable ^\n -QuitOnClose\n\n:: if set to 'yes' the winpty (https://github.com/rprichard/winpty) will be installed automatically\nset INSTALL_WINPTY=yes\nset WINPTY_VERSION=0.4.3\n\n:: add more path if required, but at the cost of runtime performance (e.g. slower forks)\nset CYGWIN_PATH=%%SystemRoot%%\\system32;%%SystemRoot%%\n\n:: set Mintty options, see https://cdn.rawgit.com/mintty/mintty/master/docs/mintty.1.html#CONFIGURATION\nset MINTTY_OPTIONS=--Title cygwin-portable ^\n  -o Columns=160 ^\n  -o Rows=50 ^\n  -o BellType=0 ^\n  -o ClicksPlaceCursor=yes ^\n  -o CursorBlinks=yes ^\n  -o CursorColour=96,96,255 ^\n  -o CursorType=Block ^\n  -o CopyOnSelect=yes ^\n  -o RightClickAction=Paste ^\n  -o Font=\"Courier New\" ^\n  -o FontHeight=10 ^\n  -o FontSmoothing=None ^\n  -o ScrollbackLines=10000 ^\n  -o Transparency=off ^\n  -o Term=xterm-256color ^\n  -o Charset=UTF-8 ^\n  -o Locale=C\n```\n\n### \u003ca name=\"customize\"\u003e\u003c/a\u003eExecuting commands after installation\n\nWhen you place a separate `cygwin-portable-installer-post-tasks.cmd` file next to the `cygwin-portable-installer.cmd` it will be\nexecuted automatically after the installation suceeded. You can use this file to perform additional configurations.\n\n\n## \u003ca name=\"update\"\u003e\u003c/a\u003eUpdating your installation\n\nTo update installed Cygwin packages execute the generated `cygwin-portable-updater.cmd` file.\n\n\n## \u003ca name=\"license\"\u003e\u003c/a\u003eLicense\n\nAll files are released under the [Apache License 2.0](LICENSE.txt).\n\nIndividual files contain the following tag instead of the full license text:\n```\nSPDX-License-Identifier: Apache-2.0\n```\n\nThis enables machine processing of license information based on the SPDX License Identifiers that are available here: https://spdx.org/licenses/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvegardit%2Fcygwin-portable-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvegardit%2Fcygwin-portable-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvegardit%2Fcygwin-portable-installer/lists"}