Portable Cygwin: Windows Registry Entries?
Jon Turney
jon.turney@dronecode.org.uk
Wed Jul 30 18:22:17 GMT 2025
On 28/07/2025 14:01, Matthew Sheets via Cygwin-apps wrote:
> I've been poking around at what might be needed to facilitate a portable Cygwin setup, and registry activity is one of the aspects that would need to be addressed.
>
> Are there any flags, options, special environment variables, etc. that would prevent Cygwin from making any registry changes?
>
> Cygwin FAQ 2.24 states the following:
> "Cygwin doesn't store anything important in the registry anymore for quite some time. There's no reason to save, restore or delete it."
> - https://www.cygwin.com/faq.html#faq.setup.registry
>
> After a fresh install to a clean system with a recent CygwinSetup-x86_64.exe (June 30), registry entries like the following can be found:
> [HKEY_CURRENT_USER\SOFTWARE\Cygwin\Installations]
> "e022582115c10879"="\\??\\C:\\cygwin64"
>
> [HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\Installations]
> "e022582115c10879"="\\??\\C:\\cygwin64"
These are records of the "installation key", a hash of the path Cygwin
is installed in (which is, um, added to the names of internal objects to
so that multiple cygwin installations are isolated from each other, or
something like that)
This is written to the registry by the DLL, purely for informational
purposes, I think.
> [HKEY_LOCAL_MACHINE\SOFTWARE\Cygwin\setup]
> "rootdir"="C:\\cygwin64"
This last registry entry is written by setup.This is only used to store
the selected installation root directory, so that setup can default to
it, next time you run it.
You can prevent this with the '--no-write-registry' setup option.
> This seems to be somewhat alluded to under FAQ 2.20.7, which covers Cygwin uninstall:
> "Finally, if you want to be thorough you can delete the registry tree Software\Cygwin under HKEY_LOCAL_MACHINE and/or HKEY_CURRENT_USER. However, if you followed the directions above you will have already removed everything important. Typically only the installation directory has been stored in the registry at all."
> - https://www.cygwin.com/faq.html#faq.setup.uninstall-all
>
>
> My initial thought was that these registry changes perhaps might be made by the Setup executable, but in a search of the Setup source code, nothing jumped out at me, but there were a few potential users of reg_key::set_string() within the searchable repos on GitHub.
> * https://cygwin.com/cgit/cygwin-apps/setup/tree/
See https://cygwin.com/cgit/cygwin-apps/setup/tree/mount.cc#n97
> * https://github.com/search?q=repo%3Acygwin%2Fcygwin+set_string&type=code
and
https://cygwin.com/cgit/newlib-cygwin/tree/winsup/cygwin/mm/cygheap.cc#n139
More information about the Cygwin-apps
mailing list