Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm a blind computer user that uses Cygwin.

The installation program isn't very accessible: upgrading, installing, and removing specific packages is quite hard to do since you have to use simulated mouse keystrokes to click and scroll.

Is there a way to either manually install/upgrade packages or install/upgrade them through the commandline?

share|improve this question

7 Answers 7

up vote 102 down vote accepted

Install apt-cyg:

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

After that you'll be able to install say the package "lynx" including dependencies by running:

apt-cyg install lynx
share|improve this answer
After installing apt-cyg, I keep getting the error "Package <packageName> not found or ambiguous name, exiting". anything I missed? –  Adrien Be Dec 11 '13 at 10:49
Nice, just don't have wget installed by default :/ –  Vadorequest Oct 28 '14 at 18:41
This version of apt-cyg is now deprecated. See here. –  Pun May 29 at 17:53
@Pun where can I see why it is deprecated? –  wowofbob Aug 1 at 12:54
@wowofbob If you go to the Google Code page this answer's wget is pointing to, you'll see a large, bold message explaining it. –  Pun Aug 2 at 4:36

Old question, but for others that google and got here: Official setup has command line arguments which allowed me to prepare simple *.bat script - just put following line in e.g. "install-pkg.bat" and put that file into your root directory (e.g. C:\cygwin):

setup-x86.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode --root "%cd%" --packages %*

You need to download and put http://www.cygwin.com/setup-x86.exe (32bit) or http://www.cygwin.com/setup-x86_64.exe (64bit) into the same directory. Now all you have to do to install package is:

install-pkg packagename

Positive: official setup, should always work, for any package. Negative: current (june/2015) official setup requires administrator rights even though it actually does not need one (e.g. root directory outside system folders).

share|improve this answer
nice answer, as it's a tool that you already have in any Cygwin installation; however, it seems that you can't keep it from updating all the already installed packages? it's quite annoying if you just want to install one new package; in other words, there is no command-line equivalent to the "Keep" option of the graphical setup.exe –  golimar Mar 28 '12 at 22:26
note setup.exe is now called setup-x86.exe - or a variant depending on cpu bits. –  ErichBSchulz Jan 18 '14 at 6:47
Link is broken, now is : cygwin.com/faq/faq.html#faq.setup.cli Can you edit that in your answer ? Thanks –  Benj Jun 10 at 8:59
@Benj thanks, i updated links, not just doc, also links to setup program –  peenut Jun 11 at 12:36

The old apt-cyg is now deprecated. The new one is here.

Installation does not need any extra tools.

lynx -source rawgit.com/transcode-open/apt-cyg/master/apt-cyg > apt-cyg
install apt-cyg /bin

If it complains about not having wget, you can remove the warning by installing it.

apt-cyg install wget
share|improve this answer

Cygwin's setup.exe, at least in the 1.7 "beta" release, has an "unattended" mode built-in. Drag and drop your setup.exe shortcut into a command window (or otherwise prepare to run it with switches), and add -q for unattended mode followed by -P and comma-separated package names. So, for me, this installed lynx:

$ "C:\Documents and Settings\martind\Desktop\setup-1.7.exe" -q -P lynx
share|improve this answer
hey, it works but how about if i want to add some packages at installation time, how to do that?? –  Johnydep May 22 '12 at 11:29
note setup.exe is now called setup-x86.exe - or a variant depending on cpu bits. –  ErichBSchulz Jan 18 '14 at 6:47

Since some people correctly stated that apt-cyg itself needs wget and in order to get apt-cyg you need wget, there is a bash only solution to bootstrap wget in pure bash.

Create a function like this in your mintty bash shell:

function __wget() {
    : ${DEBUG:=0}
    local URL=$1
    local tag="Connection: close"
    local mark=0

    if [ -z "${URL}" ]; then
        printf "Usage: %s \"URL\" [e.g.: %s http://www.google.com/]" \
               "${FUNCNAME[0]}" "${FUNCNAME[0]}"
        return 1;
    read proto server path <<<$(echo ${URL//// })
    DOC=/${path// //}
    [[ x"${HOST}" == x"${PORT}" ]] && PORT=80
    [[ $DEBUG -eq 1 ]] && echo "HOST=$HOST"
    [[ $DEBUG -eq 1 ]] && echo "PORT=$PORT"
    [[ $DEBUG -eq 1 ]] && echo "DOC =$DOC"

    exec 3<>/dev/tcp/${HOST}/$PORT
    echo -en "GET ${DOC} HTTP/1.1\r\nHost: ${HOST}\r\n${tag}\r\n\r\n" >&3
    while read line; do
        [[ $mark -eq 1 ]] && echo $line
        if [[ "${line}" =~ "${tag}" ]]; then
    done <&3
    exec 3>&-

Now you can use it almost like wget:

__wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg > /usr/bin/apt-cyg && chmod 0755 /usr/bin/apt-cyg
share|improve this answer
THAT's awesome! It might be for the geek only, but it works so leet -^.^- –  zzeroo Apr 11 '13 at 11:18
i just registered to upvote and comment a change that worked for me: - while read line; do - [[ $mark -eq 1 ]] && echo $line + while IFS=$'\n'; read line; do + [[ $mark -eq 1 ]] && printf "%s\n" $line –  user311174 Jan 6 '14 at 20:36
Excuse me, @moreaki, but there is one thing I can not understand from apt-cyg: in the classical CygWin Windows installer I may/must specify the repositories/packages location, whether be it one of the (many) ftp/http download sites, or local drive (in my computer). I don't see such option in the official googlecode site. Where does apt-cyg download the packages from? –  Sopalajo de Arrierez Apr 19 '14 at 19:24
Pardon my late reply. I have just skimmed through the code of apt-cyg on the official googlecode site and to me it looks like the selected download site seems to be http://mirrors.kernel.org/sourceware/cygwin, as specified in findworkspace(), when you haven't specified the mirror using the command line option -m. If you specify the command line, the mirror server information will be written to /etc/setup/last-mirror. –  Moreaki Jun 19 '14 at 17:29
apt-cyg installation no longer relies on wget, so none of this probably matters any more? They use lynx (which seems to be built-in in cygwin?) on their website. –  akauppi Jul 17 at 12:00

The official apt-cyg installation method is:

# svn --force export http://apt-cyg.googlecode.com/svn/trunk/ /bin/
# chmod +x /bin/apt-cyg

Two steps is better than three. ;-)


# apt-cyg install nano

By the way, to make it work you will need to install wget, tar, gawk and bzip2 in order to use apt-cyg. Apart from wget, the others come with default Cygwin installation.

share|improve this answer
For 64-bit Cygwin, svn and apt-cyg may be broken. So you may have to use the three step wget approach to install apt-cyg and then replace $mirror/setup... with $mirror/x86_64/setup... in lines 98 and 105 of apt-cyg file. –  sagunms Oct 8 '13 at 9:00

I found two 'apt like' package managers for cygwin. One is a python script called cyg-apt which you can download from http://www.lilypond.org/~janneke/software/cyg-apt and the other is apt-cyg which you can find at http://code.google.com/p/apt-cyg/

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.