如何在 Windows 中获得最新版本的 Elixir

How to have latest version of Elixir in Windows

背景

我在 Windows 机器上,我希望在其中安装最新版本的 elixir。这比预期的要难。

研究

最初我为 Windows 搜索了类似于 asdf 的东西,但是这个平台没有类似的东西。 Scoop 是最接近的工具,但它需要我编写自定义脚本并学习另一种工具,我现在不喜欢这两样东西:

https://elixirforum.com/t/elixir-version-manager-for-windows/39399/5

然后我转向巧克力:

https://community.chocolatey.org/packages?q=elixir

看起来很完美,但是已经严重过时了,只有 11.X 版本 没有任何更新的迹象,所以这个也出来了。

我最后的希望,也许是 Docker …

https://hub.docker.com/_/elixir

看起来有一个版本 12.X,希望使用 OTP 24(我的目标):

FROM erlang:24

# elixir expects utf8.
ENV ELIXIR_VERSION="v1.12.3" \
    LANG=C.UTF-8

RUN set -xe \
    && ELIXIR_DOWNLOAD_URL="https://github.com/elixir-lang/elixir/archive/${ELIXIR_VERSION}.tar.gz" \
    && ELIXIR_DOWNLOAD_SHA256="c5affa97defafa1fd89c81656464d61da8f76ccfec2ea80c8a528decd5cb04ad" \
    && curl -fSL -o elixir-src.tar.gz $ELIXIR_DOWNLOAD_URL \
    && echo "$ELIXIR_DOWNLOAD_SHA256  elixir-src.tar.gz" | sha256sum -c - \
    && mkdir -p /usr/local/src/elixir \
    && tar -xzC /usr/local/src/elixir --strip-components=1 -f elixir-src.tar.gz \
    && rm elixir-src.tar.gz \
    && cd /usr/local/src/elixir \
    && make install clean \
    && find /usr/local/src/elixir/ -type f -not -regex "/usr/local/src/elixir/lib/[^\/]*/lib.*" -exec rm -rf {} + \
    && find /usr/local/src/elixir/ -type d -depth -empty -delete

CMD ["iex"]

问题

但是,我还没有被说服。我使用 Docker 容器的唯一经历非常痛苦。我知道事情在此期间发生了变化,Docker 似乎是大多数开发人员争取的解决方案。

但是,我不确定投资这个工具(记住,我放弃了 scoop 是因为我不想投资它)是否会得到回报:

备选方案

我觉得我在这里触及桶底。老实说,我 运行 别无选择。欢迎任何想法。

抱歉,我没有在 Windows 上使用 Elixir 的个人经验,但引用 official site:

中的说明

来自安装程序README

  • Downloads and installs the latest Elixir version, or another version the user selects

回答

这一关并不容易。我不得不等待 Windows 二进制文件准备就绪。 获得最新版本的唯一方法是自己编译。

第 1 步

但是,如果这是您做不到的事情,请获取最新的 Erlang/OTP 你必须去这里的版本:

这里我下载了Erlang/OTP24.

第 2 步

之后,我下载了 Windows 的 Elixir 官方版本,并将其配置为使用我已经安装的 Erlang/OTP 版本(它默认执行):

第 3 步(可选)

如果您想使用 Elixir 开发桌面应用程序,最后一步是下载对 Edge 的 WebView 支持:

https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/b97b52c3-9a66-419c-9ef0-90e3a3f72c5c/MicrosoftEdgeWebview2Setup.exe

完成!