Open inikulshin opened 1 year ago
The question is: should multiple Erlang OTP installations be supported or not?
If the answer is yes, installer must use different registry key/values, default installation directory and start menu directories - to support independent uninstall (like Visual Studio, I have 4 of them on my workstation).
If the answer is no, Erlang installer must detect previously installed Erlang version and exit until user uninstalls it manually. Allowing user to uninstall the previously installed version in installation wizard (and in silent mode) is also an option, but it's complex, as all erl.exe
and erlsrv.exe
processes should be stopped, and services will usually start them immediately...
The default should overwrite previous installations ala windows style, so that upgrading via nuget or winget works.
You can have several installations today if you change the default installation directory. Would be great if uninstall via Add or Remove programs worked, if you find a solution please send a PR. But fixing that is way down on our priority list.
@dgud there are at least 2 windows installation styles: the one that replaces/upgrades previously installed software (e.g. RabbitMQ), and the one that allows multiple versions of the "same" software (e.g. Visual Studio, Office, Python).
I think, like for all other programming languages, it can be useful to have multiple Erlang versions installed simultaneously: for benchmarking, for compatibility checks, etc.
By the way, what's the approach in other OS'es (Linux, MacOS)?
I'll be glad to send you a PR, but please, decide on an approach (I'm still trying to convince you to choose to support multiple versions... :)
I want both, by default install and replace. If you users install somewhere else i.e. in path with version number it installs there and (s)he can have multiple versions.
Btw, IMO RabbitMQ and applications should include the Erlang/OTP in their installer.
I want both, by default install and replace. If you users install somewhere else i.e. in path with version number it installs there and (s)he can have multiple versions.
Ok, what about this behavior:
Uninstaller.exe
must run.SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Erlang OTP ${OTP_VERSION} (${ERTS_VERSION})
b. Default installation directory C:/Program Files/Erlang OTP ${OTP_VERSION} (${ERTS_VERSION})
c. Start menu directories.C:/Program Files/Erlang OTP
to the latest installed version specific directory (e.g. C:/Program Files/Erlang OTP 25.3
. The same is for Start Menu - either to link (don't know if it's possible), or to overwrite.
Since #5524 it's impossible to manage multiple Erlang versions (independently install and uninstall).
Information about multiple installed Erlang version is lost, because the uninstall information in
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Erlang OTP
is overwritten and thus contains information only about latest installed Erlang version.In case of default INSTDIR (c:\Program Files\Erlang OTP), the files are partially overwritten and the older versions can't be used(?). Uninstall of the latest from
Add or remove programs
will at least remove all the files from previously installed Erlang versions.In case of non-default INSTDIR, all the files from previously installed Erlang versions will be just lost and can't be removed from
Add or remove programs
.