国产化环境下openssl编译(arm64_UOS amd64_UOS)

下载openssl源码

官网链接:openssl源码官网下载

下载编译openssl的依赖

在任意位置打开终端,输入命令:

sudo apt-get install build-essential checkinstall zlib1g-dev -y

以下是对各个参数的解释:

sudo:以管理员身份运行,也就是超级用户(root),权限更高了

apt-get: 基于 Debian/Ubuntu 的 Linux 发行版中用于软件包管理的终端命令。它可以从远程存储库中获取软件包,并自动安装、更新或卸载它们。
install: 安装一个或多个软件包。
build-essential: 它是一个 Ubuntu 发行版中的软件包名,其中包含了编译 C/C++ 程序所需的基本工具,如 gcc 编译器和 make 构建工具等。
checkinstall: 一个其它常见版本的替代品,使用此包生成 deb 软件包并安装,方便管理和卸载。zlib1g-dev: 它是一个支持 gzip 格式压缩的开发库,提供 zlib 库的头文件和静态链接库文件,因此 C/C++ 程序可以通过使用相应的 API 对数据进行压缩和解压缩。

-y :选项表示自动应答所有提示信息,即不需要手动确认,直接进行安装(有一定风险,可不加)

执行命令后没有报错是最好的那就是已经安装好了,像我这里就遇到无法定位软件包问题,无法定位checkinstall zlib1g-dev

解决报错

首先确定基本开发工具编译器已经安装,输入命令:

sudo apt-get update
sudo apt-get install build-essential -y

之后如果还有报错,就换源(建议自己去官网找),我这边换的是阿里源,换源之前记得备份:

# 备份原来的文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 修改sources.list文件内容

sudo vim /etc/apt/sources.list

amd64环境更换以下内容:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

arm64环境更换以下内容:

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial main main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.aliyun.com/ubuntu-ports/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu-ports/ xenial-proposed main restricted universe multiverse

更换源后更新apt-get:

sudo apt-get update

大部分都会报错缺少公钥(3b4fe6acc0b21f32),当然不报错更好,下载缺少的公钥:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3b4fe6acc0b21f32

keyserver.ubuntu.com 是服务器地址

缺少哪个公钥就下载哪个(我的是3b4fe6acc0b21f32),如果无法连接服务器就更换服务器:

pgp.mit.edu
keyserver.pgp.com
keys.gnupg.net

基本到这里openssl的依赖就下载完毕了,如果还遇到找不到软件包多半是名字打错了,可以查询其部分相关,例如找不到zlib1g-dev:

sudo apt-cache search zlib

在输出界面找到自己需要的软件包名,复制粘贴是最稳的(一般复制后需要粘贴到终端外的文本文档中,然后在复制,右键粘贴到命令行中)。

编译openssl

进入到openssl源码所在文件夹(就是包含config文件以及apps doc等文件夹的那层)

执行构建命令:

arm64:
./Configure linux-aarch64 -shared --prefix=指定库生成路径

amd64:
./Configure linux-x86_64 -shared --prefix=指定库生成路径

linux-aarch64:cpu架构为arm64

-shared:生成共享库(动态链接库)

--prefix:指定openssl库安装路径

之后分别执行

make
sudo make install

执行成功后库文件就生成在自己指定的目录下了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值