# msys2-installer: the one-click installer for MSYS2

> The msys2-installer repository builds the Windows installer for MSYS2, a self-extracting archive variant of the same thing, and a nightly build, all from the base package and its dependencies. It is a small Shell and PowerShell oriented repository whose real content is the difference between what the installer does for you and what the plain archive leaves to you.

**msys2/msys2-installer** — The one-click installer for MSYS2

- Repository: https://github.com/msys2/msys2-installer
- Stars: 985 · Forks: 125
- Language: Shell
- License: BSD-3-Clause
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/msys2-msys2-installer

## One repository, three kinds of artefact

The msys2-installer repository is the one-click installer for MSYS2, and while it looks like a small project, it produces three distinct things that a Windows user will meet. The first is the graphical installer, the msys2-x86_64 executable that most people download. The second is the self extracting archive, the base distribution as an sfx executable, which is what you want on a machine where you cannot or do not want to run a wizard. The third is the nightly build, published as a release tagged nightly-x86_64, which is the artefact to watch if you want the newest package set rather than the newest installer release. The project is BSD-3-Clause licensed and written mostly in shell, with the primary language recorded as Shell, which is a reminder that this is a packaging repository that drives other tools rather than an application with a user interface of its own. The release tags are dated, with 2026-09-27, 2026-06-11 and 2026-03-22 in the recent history, and the last push was on 2026-10-16.

## The three command line forms

The readme gives three command line examples, and they cover the whole life of an installation. Installing the GUI installer via the CLI to a specific root, which is the form you want in a provisioning script:

```powershell
.\msys2-x86_64-latest.exe in --confirm-command --accept-messages --root C:/msys64
```

The flags are the interesting part. The command word selects the install action, the confirmation flag suppresses the interactive prompt, the messages flag accepts the terms, and the root flag sets the installation directory, which is why the example spells out the path rather than accepting the default. Uninstalling an existing installation goes through the uninstaller that the installer itself registered:

```powershell
C:\msys64\uninstall.exe pr --confirm-command
```

And extracting the self extracting archive to a drive root needs no confirmation flag at all, because the sfx format takes its options differently:

```powershell
.\msys2-base-x86_64-latest.sfx.exe -y -oC:\
```

The -y answers the overwrite prompt and the output option chooses the directory. Reading these three side by side is the quickest way to understand the repository, because they are the entire public surface.

## What the installer does that the archives do not

The FAQ asks the question people actually have, which is what the difference between the installer and the archives is, and the answer is four things. The installer installs shortcuts, it registers an uninstaller, it provides a GUI for selecting the installation path, and it automatically runs a login shell at the end to initialise the MSYS2 environment. Then comes the sentence that makes the decision easy. If you unpack the archives and run a login shell once, you get a functionally equivalent MSYS2 installation. So the choice is between convenience and nothing else. The archive route is scriptable, has no wizard, produces no shortcuts and no uninstaller, and requires one manual step at the end to initialise the environment, and the installer's four extras exist to remove that manual step and the other three chores. For a laptop where you will use the environment once, the archive is enough. For a machine that other people will use, the installer is the better shape.

## What is inside: the base package and its dependency tree

Both the installer and the archives contain the base package and all of its dependencies, and the readme explains how to check that for yourself, because knowing the contents of what you installed is a reasonable thing to want. The package base is the root of the MSYS2 package tree, and the tool to walk it is pactree, which lists the dependency tree of a package, and the command given lists the base package and its dependencies:

`pactree base -lu | sort`

Piping through sort makes the result readable. It is a small thing, but it is the kind of check that turns an installer you trust into an installer you have checked, and it is the reason the answer to the question is short and verifiable rather than a promise. The package index is on packages.msys2.org, where the base package and the rest of the tree are described in more detail.

## How the artefacts are put together

The repository layout explains the shape of the build. There is a qt-ifw directory, which holds the build inputs for the graphical installer. Two shell scripts sit at the root, create-release.sh and create-sfx.sh, one for each of the two kinds of artefact, and a make-msys2-installer entry that points at the build of the installer itself. The CI configuration lives in.ci and.github, and the project keeps a HACKING.md for people working on the build rather than on the output, which is a sensible split when the documentation most users need is the three command lines and nothing else. The repository also carries a screenshot of the installer, which is the whole visual documentation the project needs, since the interface is a wizard.

## The release pattern, and what to watch

The tags are dates rather than versions, with 2026-09-27, 2026-06-11 and 2026-03-22 in the recent list, which says the project ships a release roughly every three months and names it after the day it was cut. That is a sensible scheme for an installer whose content is a moving package tree, because the date tells you how fresh the packages inside are. Alongside those, the nightly-x86_64 tag is the continuous build, and that is where you look if you need a package that has not yet reached a dated release. Two things are worth planning around. The first is that the installer is for Windows on x86_64, so anyone on another platform or another architecture is looking at a different project entirely. The second is that the artefacts are large, since the base package and its dependencies are the bulk of the download, and a build pipeline that installs MSYS2 repeatedly will want a local copy of the archive rather than a fresh download each time. The last push was on 2026-10-16, so the tree is being maintained.

## Conclusion

This repository is worth a look if you are about to install MSYS2 on a Windows machine and want the scripted path rather than clicking through a wizard, since the three command lines cover install, uninstall and archive extraction and the FAQ states plainly what each route does for you. It is the wrong place to look if you want to understand what MSYS2 is, since that is the other repository, and it is the wrong place to look if you are on Linux or macOS, where none of this applies. Before you script an install, read the FAQ section, because the difference between the installer and the archives is exactly the set of steps you would otherwise have to do by hand.

## FAQ

### What is the MSYS2 installer?

It is the one-click installer for MSYS2 on Windows, built in this repository together with a self extracting archive variant and a nightly build published under the nightly-x86_64 tag. It is BSD-3-Clause licensed.

### How do I install MSYS2 without the interactive wizard?

Run the installer executable with the in command, the confirmation and messages flags and a root path, for example .\msys2-x86_64-latest.exe in --confirm-command --accept-messages --root C:/msys64. The self extracting archive takes a different form, .\msys2-base-x86_64-latest.sfx.exe -y -oC:\.

### What is the difference between the installer and the archives?

The installer adds shortcuts, registers an uninstaller, offers a GUI for choosing the installation path and automatically runs a login shell at the end to initialise the environment. If you unpack the archives and run a login shell once, you get a functionally equivalent installation.

### Which packages does the MSYS2 installer contain?

The base package and all of its dependencies. You can list what is included with the command pactree base -lu | sort, which walks the dependency tree of the base package.

### How do I uninstall MSYS2?

Run the uninstaller that the installer registered, for example C:\msys64\uninstall.exe pr --confirm-command, which removes the installation at that root without prompting.

## Sources

- [Issues](https://github.com/msys2/msys2-installer/issues)
- [License: BSD-3-Clause](https://github.com/msys2/msys2-installer/blob/main/LICENSE)
- [msys2/msys2-installer on GitHub](https://github.com/msys2/msys2-installer)
- [README](https://github.com/msys2/msys2-installer/blob/main/README.md)
- [Releases](https://github.com/msys2/msys2-installer/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/msys2-msys2-installer
