V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wxlg1117
V2EX  ›  Linux

7zip 官方 7-Zip 21.02 alpha (2021-05-06)源代码编译...

  •  
  •   wxlg1117 · 2021-05-07 18:40:36 +08:00 · 3755 次点击
    这是一个创建于 1303 天前的主题,其中的信息可能已经有所发展或是发生改变。
    7-Zip 21.02 alpha (2021-05-06):
    https://www.7-zip.org/a/7z2102-linux-x64.tar.xz 这个官方发布的命令行版本在 centos7 里会报错,应该是官方编译版本对 libstdc++.so 有要求:
    ./7zz: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./7zz)
    ./7zz: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./7zz)

    # ls -l /usr/lib64/libstdc++.so.6
    lrwxrwxrwx. 1 root root 19 Apr 5 01:58 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
    # strings /usr/lib64/libstdc++.so.6.0.19 | grep CXXABI
    CXXABI_1.3
    CXXABI_1.3.1
    CXXABI_1.3.2
    CXXABI_1.3.3
    CXXABI_1.3.4
    CXXABI_1.3.5
    CXXABI_1.3.6
    CXXABI_1.3.7
    CXXABI_TM_1
    但是升级 libstdc++.so 容易造成别的应用混乱,想折腾下在 centos 7 下自己源码编译...但是搜了 google,发现大多是在 windows 下用 VSC 编译.exe 的教程.坛里有大佬折腾过 linux 下怎么编译么?求指教

    PS:主要是 7zip 这货在 windows 和 linux 下都太好用了...
    15 条回复    2021-10-02 13:34:15 +08:00
    lsp7572
        1
    lsp7572  
       2021-05-07 19:11:19 +08:00
    不想混用,就自己编一个 gcc,install 到一个地方,然后用自己编译 gcc 编译 7zip 就行了吧
    ssrfox
        2
    ssrfox  
       2021-05-07 19:24:12 +08:00
    万能抄近路方案——用 docker
    lostberryzz
        3
    lostberryzz  
       2021-05-07 19:49:23 +08:00
    pzstd 了解一下?
    lostberryzz
        4
    lostberryzz  
       2021-05-07 19:57:38 +08:00
    ysc3839
        5
    ysc3839  
       2021-05-07 20:35:35 +08:00 via Android
    你用的发行版包管理没有提供 p7zip 吗?有的话直接改改包管理里面的编译脚本,应该不麻烦。
    不建议 Unix 下直接使用原版 7zip,据说是因为有一些坑,所以才会有个 p7zip 出现。
    lcdtyph
        6
    lcdtyph  
       2021-05-07 20:42:33 +08:00   ❤️ 2
    @ysc3839 #5
    unix 下出现 p7zip 的原因是原版一开始只提供了 win 的支持……
    Nitroethane
        7
    Nitroethane  
       2021-05-07 22:04:06 +08:00 via iPhone
    我记得 centos 有个官方仓库源,名字以 rh 开头的,里面有最新的 gcc 套件,而且不会污染当前系统
    0ZXYDDu796nVCFxq
        8
    0ZXYDDu796nVCFxq  
       2021-05-07 22:52:20 +08:00 via Android
    从 8 复制这个文件,然后 patchelf 修改 7z 的 rpath,大概率能运行
    CatCode
        9
    CatCode  
       2021-05-07 22:54:42 +08:00
    @lostberryzz 问一下 zstd 不是本身就有多线程吗?为啥还要个 p ?
    wxlg1117
        10
    wxlg1117  
    OP
       2021-05-07 23:20:13 +08:00   ❤️ 1
    @ysc3839 是因为原版当时没有对 linux 系统提供支持才会出现 p7zip,从 21 开始官方有支持了,也 release 了 bin 版本,就是运行的时候要求某些库版本稍高
    wxlg1117
        11
    wxlg1117  
    OP
       2021-05-07 23:23:13 +08:00
    @lostberryzz 感谢...倒是忘记去官方看了...
    aloxaf
        12
    aloxaf  
       2021-05-08 15:33:29 +08:00   ❤️ 1
    @ysc3839 p7zip 原来的开发者已经弃坑很久了(联系不上),现在有些发行版用的 p7zip 是其他人的 fork,比如 Arch 用的是 jinfeihan57/p7zip 。而且正是因为这个理由 7-zip 作者才亲自下场支持 Linux 。

    最让我感叹的是 7-zip 终于放出源码了。这几年 7-zip 一直没放源码,于是 p7zip 核心算法一直没啥改进,也就 FLZMA2 不错,但还是比不上 7-zip 自带的 LZMA2 实现。
    ysc3839
        13
    ysc3839  
       2021-05-08 15:35:26 +08:00 via Android
    @aloxaf 7zip 不是一直是开源的吗?“没放源码”指的是什么情况?
    aloxaf
        14
    aloxaf  
       2021-05-08 15:41:03 +08:00
    @ysc3839 #13 7-zip 的开源是随每个版本一起发布源码,最近几年的版本一直都是 alpha 版,也没放源码。
    wxlg1117
        15
    wxlg1117  
    OP
       2021-10-02 13:34:15 +08:00
    自己回复一下,有大佬搞了 7zip Static Build Dockerfile : https://github.com/justdan96/7zip_static,但是我使用似乎有点问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:56 · PVG 06:56 · LAX 14:56 · JFK 17:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.