【发布时间】:2023-03-10 07:30:01
【问题描述】:
背景
我在一台 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 似乎是大多数开发人员争取的解决方案。
但是,我不确定投资这个工具(请记住,我放弃了独家新闻是因为我不想投资它)是否会得到回报:
- 我能否使用容器为 Windows 创建版本?
- 我也可以为 Ubuntu 创建发行版吗? (我很确定我不能,因为我的主机是 Windows,但只是确认)
- 你们有没有推荐任何适用于 Windows 的指南?
替代方案
我觉得我正在触及桶底。老实说,我已经没有选择了。欢迎任何想法。
【问题讨论】:
-
Elixir 在 Windows 中的开发很困难。最终或暂时建立一切的大量努力。我最终选择了wsl2 ubuntu。我对此很满意。推荐你切换!
标签: windows docker elixir erlang-otp