如何离线安装HEX



请问是否有离线安装HEX的解决方案?

D:PaperlessPeopleCostserver>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:PaperlessPeopleCostserver>

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

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

我在elixir:latest的Docker实例上进行了测试,使用Elixir版本1.12.2,hex版本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

最新更新