elixir-lang / elixir

Elixir is a dynamic, functional language for building scalable and maintainable applications
https://elixir-lang.org/
Apache License 2.0
24.29k stars 3.35k forks source link

Windows setup thorw an error #13569

Open yeshan333 opened 4 months ago

yeshan333 commented 4 months ago

Elixir and Erlang/OTP versions

Operating system

windows

Current behavior

image

when I click elixir-otp-26.exe to install Elixir. then throw an exception:

Found existing Erlang/OTP installation at Elixir Setup Found existing Erlang/OTP installation at C:\Userslyeshan333\.version-foxicachelerlanglv-25.3.2.12lerlang-25.3.2.12\release but checking it exited with error:

Expected behavior

No errors are thrown during installation.

josevalim commented 4 months ago

@wojtekmach, which check do we execute here? Maybe we can add the check we run in the error message?

wojtekmach commented 4 months ago

The error is raised here: https://github.com/elixir-lang/elixir/blob/v1.16.2/lib/elixir/scripts/windows_installer/installer.nsi#L119

based on this check:

https://github.com/elixir-lang/elixir/blob/v1.16.2/lib/elixir/scripts/windows_installer/installer.nsi#L94:L96

It looks like you maybe have OTP 25 installed too so consider uninstalling it first. Though the installer should gracefully handle other installation.

josevalim commented 4 months ago

@yeshan333 can you try executing the commands above in your Erlang installation? Does it work? What does it return?

yeshan333 commented 4 months ago

After I uninstalled OTP 25, the installer can work normally.

However, if I have multiple OTP versions installed on my machine at the same time, it seems that Elixir's installer cannot find them well.

And OTP 25 installation path exists in the environment variable:

1f42a2cb8e5685186bc8cf4414273bfe @josevalim @wojtekmach

wojtekmach commented 3 months ago

Thank you for checking, this is really helpful. What is the installer version, i.e. Elixir version, you used?

yeshan333 commented 3 months ago

Thank you for checking, this is really helpful. What is the installer version, i.e. Elixir version, you used?

installer version is elixir-otp-25.exe.

wojtekmach commented 3 months ago

That's not enough information, which release (https://github.com/elixir-lang/elixir/releases) did you download the installer from?

yeshan333 commented 3 months ago

That's not enough information, which release (https://github.com/elixir-lang/elixir/releases) did you download the installer from?

this: https://github.com/elixir-lang/elixir/releases/download/v1.16.3/elixir-otp-25.exe

simonmcconnell commented 3 months ago

@yeshan333 in the meantime you can handle multiple versions using scoop

scoop install erlang@25.3.2.12
scoop install elixir@1.16.2-otp-25
scoop install elixir@1.16.3-otp-25 # becomes the current version
scoop reset elixir@1.16.2-otp-25 # change current version