如何离线安装HEX

how to install HEX offline

请问有离线安装 HEX 的解决方法吗?

D:\Paperless\PeopleCost\server>mix local.hex --force
** (Mix) httpc request failed with: {:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet, [:inet], :etimedout}]}

Could not install Hex because Mix could not download metadata at https://repo.hex.pm/installs/hex-1.x.csv.

Alternatively, you can compile and install Hex directly with this command:

    mix archive.install github hexpm/hex branch latest


D:\Paperless\PeopleCost\server>

您显示的错误消息提示了解决方案。 我检查了 hex[1] 的存储库,您可以构建自己的存档(.ez 文件)。

在没有在线连接的情况下将该文件复制到您的环境中并在本地安装。

我在 elixir:latest 的 Docker 实例上使用 Elixir 版本 1.12.2、十六进制版本 0.21.2 和 OTP 24.0.5 进行了测试。

重现步骤:

# On a machine with an internet connection
cd /tmp/
git clone https://github.com/hexpm/hex/archive/refs/tags/v0.21.2.tar.gz --output hex.tar.gz 
tar -xzf hex.tar.gz 
cd hex-0.21.2/
./release.sh 0.21.2

这应该会创建一堆文件,但我想我们只对最新的文件感兴趣(即 hex-0.21.2-elixir-1.11.0.ez)。 文件名意味着这是 Hex 版本 0.21.2 的存档,它是用 Elixir 版本 1.11.0 构建的。我使用较新的 Elixir 版本对此进行了测试,没有任何问题。 在您的离线计算机上获得该存档后,使用以下命令安装它。

mix archive.install /tmp/hex-0.21.2.ez
mix hex.info

最后一条命令应该如下所示。

Hex:    0.21.2
Elixir: 1.12.2
OTP:    24.0.5

Built with: Elixir 1.9.4 and OTP 20.3

我认为这就是你应该如何做的。

[1] https://github.com/hexpm/hex