如何从源代码构建 openssl-devel 包?

How to build openssl-devel package from sources?

我需要在CentOS 6上安装openssl-devel包来编译nginx+openssl-1.1.1。但对于 CentOS 6 来说只有 1.0.2 版本可用。从源代码编译openssl-1.1.1没问题,但是我找不到任何关于openssl-devel的信息。

如何编译这个包?我找不到 openssl-devel 源或者我可以从通常的 openssl 源编译这个包?

首先,我希望很明显,当您尝试为比 CentOS 6 使用的更新的主要 OpenSSL 版本构建软件包时,您不能/不应该重复使用相同的软件包名称。如果您 do 你可能会破坏操作系统,因为任何依赖 OpenSSL 的东西都可能会失败,因为 missing/deprecated 与 OpenSSL 1.0.x 相比,新库中的函数CentOS 6 程序 linked/compiled with.

您应该做的与 EPEL 为 CentOS 7 所做的类似:创建一个包 openssl11(以及随后的 openssl11-devel 等),将较新的库发布在不同的目录下名字.

那么任何打算使用较新的 OpenSSL 重建的应用程序,都应该“link”(又名 BuildRequires: 反对 openssl11-devel

所以你要的是:

  • 为 EL7 的 openssl11 获取 .src.rpm,例如here
  • 为 EL6 重建它:作为最低限度,您需要禁用一些假定较新 glibc 的补丁并修复与 stripping binaries
  • 相关的问题
  • 使用 BuildRequires: openssl11-devel package
  • 构建任何要针对 OpenSSL 1.1.1 编译的包