背景
我有一个Ubuntu,我试图通过asdf-erlang插件安装Erlang22.2.8。
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal问题
事实上,我想安装Erlang的任何版本,但是都不起作用。
$ asdf install erlang 22.2.8
Downloading kerl...
$它在“下载kerl”之后停止,然后什么也不会发生。就像结束了一样。在安装插件之前,我也遵循了安装前的步骤,但这并不能防止错误。
我怎么才能解决这个问题?
发布于 2021-01-14 10:37:07
经过我和几位来自灵丹妙药社区的人的大量调查,我们终于发现了问题所在。
问题
第一条线索是命令本身的退出信号:
$ asdf install erlang 22.2.8
Downloading kerl...
$ echo $?
1退出代码为1,这意味着发生了错误。
因此,在深入研究代码之后,我们发现有一个卷曲的电话我无法拨打:
$ curl -v -Lso ~/.asdf/plugins/erlang/kerl https://raw.githubusercontent.com/kerl/kerl/2.0.2/kerl
* Trying 151.101.16.133:443...
* TCP_NODELAY set
* Connected to raw.githubusercontent.com (151.101.16.133) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [6 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3400 bytes data]
* TLSv1.3 (OUT), TLS alert, unknown CA (560):
} [2 bytes data]
* SSL certificate problem: self signed certificate in certificate chain
* Closing connection 0我有SSL证书问题。这是因为公司的VPN/代理。
可以使用-k选项找到一个快速修复/解决方法,以允许curl连接到不安全的连接。在尝试了-k的卷曲后,请求成功,证明了该理论的正确性。
解决方案
随着问题的确定,是时候寻求解决办法了。我认为最合适的解决方案是将公司证书添加到ssl certs.pem中。下面的帖子对此作了更好的说明:
快速解决办法
然而,那个解决方案对我没有用。因此,我最终决定使用高风险的选项,即使用~/.curlrc。
https://ec.haxx.se/cmdline/cmdline-configfile#default-config-file
在设置了这个文件并在其中添加了-k选项之后,它就工作了。现在我终于可以安装我需要的erlang版本了。
值得注意的是,这是一个风险。实际上,--这是一种解决办法,而不是真正的解决方案。
不过,暂时来说,我很乐意接受。
历史
这是我与Elixir社区进行的整个讨论的总结。如果您对整个过程感兴趣,可以查看文章:
https://elixirforum.com/t/installing-erlang-via-asdf-on-ubuntu-fails-after-downloading-kerl/36806/25
https://stackoverflow.com/questions/65698007
复制相似问题