在 Ubuntu 上手动编译和安装 OpenSSL 库的步骤如下:

  1. 安装编译工具和依赖项

    在编译 OpenSSL 之前,请确保您的系统中已安装以下软件包:

    sudo apt-get updatesudo apt-get install build-essential checkinstall zlib1g-dev -y
  2. 下载 OpenSSL 源代码

    您可以从 OpenSSL 官方网站(https://www.openssl.org/source/)下载最新版本的 OpenSSL 源代码,并将其解压缩到您的系统上的任何目录中。例如:

    wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
    tar -zxvf openssl-1.1.1l.tar.gzcd openssl-1.1.1l
  3. 配置 OpenSSL

    在源代码目录中运行以下命令以配置 OpenSSL:

    ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib

    这将使用指定的选项配置 OpenSSL,并指定 OpenSSL 的安装目录为 /usr/local/ssl。

  4. 编译 OpenSSL

    在源代码目录中运行以下命令以编译 OpenSSL:

    emake

    这将编译 OpenSSL 库。

  5. 安装 OpenSSL

    在源代码目录中运行以下命令以安装 OpenSSL:

    sudo make install

    这将安装 OpenSSL 到 /usr/local/ssl 目录下。

  6. 配置动态链接库

    如果您的系统上已安装了旧版本的 OpenSSL 库,则需要更新动态链接库以使用新版本的库。运行以下命令以更新动态链接库:

    sudo ldconfig

    这将使新版本的 OpenSSL 库可用于系统中的所有程序。

如果出现openssl: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory

这个错误提示表明您的系统中缺少名为 libssl.so.3 的共享库文件,导致openssl程序无法正常运行。

要解决此问题,您可以尝试以下步骤:

  1. 确认 OpenSSL 库已正确安装

    确保您的系统中已正确安装 OpenSSL 库。您可以运行以下命令检查是否已安装:

    pkg -l | grep openssl

    如果 OpenSSL 未安装,请运行以下命令安装:

    sudo apt-get install openssl
  2. 检查库文件是否存在

    确认 libssl.so.3 库文件是否存在。您可以使用以下命令在系统中查找该文件:

    sudo find / -name libssl.so.3

    如果找到该文件,请确保它的路径已添加到 LD_LIBRARY_PATH 环境变量中。您可以使用以下命令将该路径添加到 LD_LIBRARY_PATH 环境变量中:

    export LD_LIBRARY_PATH=/path/to/libssl.so.3:${LD_LIBRARY_PATH}

    请确保将 /path/to/libssl.so.3 替换为实际的 libssl.so.3 库文件所在的路径。

  3. 更新动态链接库

    如果在以上步骤后仍然无法解决问题,请尝试更新动态链接库。您可以使用以下命令更新动态链接库:

    sudo ldconfig

    这将重新加载动态链接库,使新的库文件可用于系统中的所有程序。