Ubuntu 20.04 我应该将 libssl1.1 降级到 libssl1.0 才能安装 npm 吗?

Ubuntu 20.04 我应该将 libssl1.1 降级到 libssl1.0 才能安装 npm 吗?

我正在尝试安装 npm,发现了这个解决方案。我运行aptitude install npm,建议的解决方案是

The following packages have unmet dependencies:
 libssl-dev : Depends: libssl1.1 (= 1.1.1f-1ubuntu2) 
but 1.1.1g-1+ubuntu18.04.1+deb.sury.org+1 is installed

     Keep the following packages at their current version:
1)     libnode-dev [Not Installed]                        
2)     libssl-dev [Not Installed]                         
3)     node-gyp [Not Installed]                           
4)     npm [Not Installed]                                



Accept this solution? [Y/n/q/?] 

它基本上建议降级,但如果我将 libssl1.1 降级到 libssl1.0,这会对我的系统产生什么影响?

编辑:将 Ubuntu 18.04 升级到 20.04 后出现了这个问题。丹·斯卡利的解决方案有效,并且我还在启动板的评论中提供了另一个选项,其中针对我的具体情况进行了更详细的说明。

答案1

这是一个依赖问题

由于npm依赖于 node-gyp,而 node-gyp 又依赖于 libnode-dev,而 libnode-dev 又依赖于 libssl-dev,因此问题就出在这里,libssl-dev依赖于libssl1.1 versoin 1.1.1f-1ubuntu2您是否拥有较新的版本libssl1.1 version 1.1.1g-1+ubuntu18.04.1+deb.sury.org+1

因此,作为解决方法,你可以选择丹·斯卡利的建议是从 g 降级到 f,如下所示

 sudo apt install libssl1.1=1.1.1f-1ubuntu2

然后你就可以安装 npm

 sudo apt install npm

我使用它没有任何问题。

答案2

看起来您是通过 PPA 而不是通常的 Ubuntu 源安装了 libssl。如果是这样,apt search --names-only libssl应该可以确认这一点。建议从 g 降级到 f,而不是从 1.1 降级到 1.0:这些版本之间的变化已列出这里在我看来相当小:

1.1.1f 和 1.1.1g 之间的变化 [2020 年 4 月 21 日]

*) 修复了 SSL_check_chain() 中的分段错误。在
TLS 1.3 握手期间或之后调用 SSL_check_chain() 函数的服务器或客户端应用程序可能会因对“signature_algorithms_cert”TLS 扩展的错误处理导致 NULL 指针取消引用而崩溃。如果从对等方收到无效或无法识别的签名算法,则会发生崩溃。恶意对等方可能会利用这一点进行拒绝服务攻击。(CVE-2020-1967)[Benjamin Kaduk]

*) 为 no-asm 配置添加了 AES consttime 代码,
在为 no-asm 构建 openssl 时添加了可选的 AES 恒定时间支持。使用以下命令启用:./config no-asm -DOPENSSL_AES_CONST_TIME 使用以下命令禁用:./config no-asm -DOPENSSL_NO_AES_CONST_TIME 目前此功能默认处于禁用状态。它将在 3.0 中默认启用。[Bernd Edlinger]

是否愿意接受 npm 的功能下降取决于你。

相关内容