【问题标题】:'CANNOT LINK EXECUTABLE "node": library "libcrypto.so.3" not found'无法链接可执行“节点”:找不到库“libcrypto.so.3”
【发布时间】:2022-06-26 05:32:33
【问题描述】:

在 Termux (my_distro) 中:

$ pkg show openssl
Package: openssl
Version: 3.0.1-1
Maintainer: @termux
Installed-Size: 6648 kB
Depends: ca-certificates, zlib
Conflicts: libcurl (<< 7.61.0-1)
Breaks: openssl-tool (<< 1.1.1b-1), openssl-dev
Replaces: openssl-tool (<< 1.1.1b-1), openssl-dev

openssl 安装包:

openssh/stable 8.8p1-3 aarch64 [upgradable from: 8.8p1-1]
openssl-tool/stable 3.0.1-1 aarch64 [upgradable from: 1.1.1m-2]
openssl/stable 3.0.1-1 aarch64 [upgradable from: 1.1.1m-2]

nodejs的安装:

$ pkg install nodejs-lts
Setting up nodejs-lts (16.14.0-2) ...
CANNOT LINK EXECUTABLE "node": library "libcrypto.so.3" not found
Aborted
dpkg: error processing package nodejs-lts (--configure):
 installed nodejs-lts package post-installation script subprocess returned error exit status 134
Processing triggers for man (1.14.5-3) ...
Errors were encountered while processing:
 nodejs-lts
E: Sub-process /data/data/com.termux/files/usr/bin/dpkg returned an error code (1)

之后它现在显示。

$ node
CANNOT LINK EXECUTABLE "node": library "libcrypto.so.3" not found
Aborted

$ npm
CANNOT LINK EXECUTABLE "node": library "libcrypto.so.3" not found
Aborted

【问题讨论】:

  • libcrypto.so.3openssl v3 的一部分,这是非常新的,我不知道是否有任何发行版与它一起发布,甚至是最前沿的。编辑您的问题以告诉我们发行版。如果您自己安装了openssl v3,那么您需要告诉我们。您可能需要找到与openssl v1 一起使用的旧版nodejs-lts,将代码指向openssl v3 开发库所在的位置,或者删除openssl v3
  • 请编辑您的帖子并将该信息放在那里。其次,您有一个安装了 openssl v1 和 v3 的混合系统,但是,您似乎没有安装 v3 开发包。另外,如果你看一下,你会发现你现在有包冲突。为什么要安装 v3?
  • 我的 openssl 版本:3.0.1-1 可以吗?
  • 不。您没有安装 v3 开发包。看那个词Breaks
  • `怎么安装呢? `

标签: node.js installation


【解决方案1】:

对我来说,运行pkg upgrade &amp;&amp; pkg update 已经解决了问题

【讨论】:

    【解决方案2】:

    呃……只是

    pkg update openssl-tool
    

    apt update openssl-tool 
    

    是一样的。

    ;)

    【讨论】:

      【解决方案3】:

      openssl-tool 如果您运行的是最新的 termux,可能无法安装

      尝试运行:

      apt upgrade && apt update
      apt install openssl-tool
      

      【讨论】:

        【解决方案4】:

        Google play 版本的 Termux 已弃用。

        从 Fdroid 安装为我解决了这个问题。 https://wiki.termux.com/wiki/Installation

        【讨论】:

          【解决方案5】:

          您也可以尝试更改默认的 repo 镜像。

          运行以下命令:

          termux-change-repo
          

          这会将外壳放到一个选项窗口中,允许您选择一个备用镜像。一旦你选择了一个,Termux 应该会自行运行 pkg update 或 apt update。

          对我来说,这几乎解决了所有与包相关的问题。

          希望对你也有帮助。

          【讨论】:

            最近更新 更多