V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sockpuppet9527
V2EX  ›  分享发现

其实 openssl 是个麻烦的东西..

  •  
  •   sockpuppet9527 · 2020-10-16 10:26:56 +08:00 · 2706 次点击
    这是一个创建于 1289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有感而发。两件事情是这样的:

    第一件事

    1. 我想用新版本的 openssl 1.1.1 测试下 SM3 性能
    2. 手动编译,软连接之后,可以用了,美滋滋的测性能
    3. yum 用不了了,提示多个库找不到 xxxx ( libcurl 啥的),一查 openssl 1.1.1 后移除了一些老 api
    4. 年轻的我发现,新编译的把老的覆盖掉了(不应该选之前装的目录)。
    5. 赶紧重新编译个老的,软连接到老的。恢复正常
    6. 以后用 openssl 跑点啥的时候,还得 export 一下

    第二件事

    1. 波兰蠢驴用了 cmake 3.15 以上的一个写法,但是设置的最低版本检查写的还是 3.10
    2. 要整一个 cmake 比较新的版本,赶紧下载编译了一个 cmake 3.17
    3. 编译到一半,都是 openssl.c 相关的错。
    4. 查了半天,原来是 cmake 里面它自己写了一个类似 curl 的模块,默认情况下会用它自己写的,而不是系统的 libcurl 。
    5. 加了一个--system-curl,编译完。

    这件事告诉了我:手动安装啥,都得留版本,千万不要把老版本移除了!

    18 条回复    2020-10-16 14:36:46 +08:00
    felixcode
        1
    felixcode  
       2020-10-16 10:30:47 +08:00   ❤️ 10
    用 Debian, 极少用到编译了,并且认为编译安装简直是陋习(geetoo 之类的除外),为解决问题而创造更多问题,普遍出现在红帽系上。
    felixcode
        2
    felixcode  
       2020-10-16 10:32:32 +08:00
    geetoo -> gentoo
    mason961125
        3
    mason961125  
       2020-10-16 10:40:09 +08:00
    Debian 10 的 OpenSSL 已经是 1.1.1d 了啊。
    nicebird
        4
    nicebird  
       2020-10-16 10:41:00 +08:00
    只要编译都是一堆麻烦事
    sockpuppet9527
        5
    sockpuppet9527  
    OP
       2020-10-16 10:41:08 +08:00
    @felixcode #1 被你发现了 :)
    cmdOptionKana
        6
    cmdOptionKana  
       2020-10-16 10:42:51 +08:00
    只能说 c 语言编译是个麻烦的事情
    shyling
        7
    shyling  
       2020-10-16 11:10:45 +08:00
    自己编译和系统预编译的东西之间老是会有问题
    Maboroshii
        8
    Maboroshii  
       2020-10-16 11:17:11 +08:00
    话说 docker 可以解决这问题吗
    brMu
        9
    brMu  
       2020-10-16 11:21:32 +08:00
    为了新版本,编译的确麻烦,所有现在都是跟着 debian 升级,debian 10 该有的都有
    icyalala
        10
    icyalala  
       2020-10-16 11:28:04 +08:00
    CMake 不论语法还是其他东西都令人恶心,近些年搞的 Modern CMake 也造成各种版本问题。。
    无奈它已经是算是事实标准了。。
    love
        11
    love  
       2020-10-16 12:18:44 +08:00 via Android
    这是楼主的问题就别怪 openssl 了,谁敢在发行版上编译覆盖内置安装包?都是另外安装一个目录。
    webshe11
        12
    webshe11  
       2020-10-16 12:35:54 +08:00
    @felixcode 经典编译脚本,连版本号都不带改的,一把梭就是淦
    feather12315
        13
    feather12315  
       2020-10-16 12:39:17 +08:00 via Android
    这种情况上各大发行版的 dev branch ( deb 看 Debian 的 sid,rpm 去 build.opensuse.org 找找 factory 的 repo )看看,抄抄他们打包脚本
    sockpuppet9527
        14
    sockpuppet9527  
    OP
       2020-10-16 12:43:25 +08:00
    @love #11
    目录安装,你还得手动设置环境变量,难道用到特定版本的时候你去手动修改?
    个人观点,覆盖升级是有覆盖升级的好处的,不覆盖有不覆盖的必要。
    cheng6563
        15
    cheng6563  
       2020-10-16 12:45:30 +08:00 via Android
    容器大法好
    sockpuppet9527
        16
    sockpuppet9527  
    OP
       2020-10-16 12:51:22 +08:00
    @Maboroshii #8
    @cheng6563 #15

    不巧的是,由于做的是驱动相关的,docker runtime 还在加这块支持。。所以用不了 docker
    sockpuppet9527
        17
    sockpuppet9527  
    OP
       2020-10-16 12:52:14 +08:00
    @icyalala #10 同感 :)
    love
        18
    love  
       2020-10-16 14:36:46 +08:00 via Android
    @sockpuppet9527 覆盖安装其他版本你就跳过了包管理器版本依赖检查和整个发行版的系统测试,那出问题就没啥好抱怨的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2915 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 125ms · UTC 03:14 · PVG 11:14 · LAX 20:14 · JFK 23:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.