技术解析

7zip 官方 7-Zip 21.02 alpha (2021-05-06)源代码编译...
0
2021-06-11 21:11:02
idczone
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 下都太好用了...
不想混用,就自己编一个 gcc,install 到一个地方,然后用自己编译 gcc 编译 7zip 就行了吧

万能抄近路方案——用 docker

pzstd 了解一下?

编译教程: https://sourceforge.net/p/sevenzip/discussion/45797/thread/7fe6c21efa/

你用的发行版包管理没有提供 p7zip 吗?有的话直接改改包管理里面的编译脚本,应该不麻烦。
不建议 Unix 下直接使用原版 7zip,据说是因为有一些坑,所以才会有个 p7zip 出现。


unix 下出现 p7zip 的原因是原版一开始只提供了 win 的支持……

我记得 centos 有个官方仓库源,名字以 rh 开头的,里面有最新的 gcc 套件,而且不会污染当前系统

从 8 复制这个文件,然后 patchelf 修改 7z 的 rpath,大概率能运行

问一下 zstd 不是本身就有多线程吗?为啥还要个 p ?

是因为原版当时没有对 linux 系统提供支持才会出现 p7zip,从 21 开始官方有支持了,也 release 了 bin 版本,就是运行的时候要求某些库版本稍高

感谢...倒是忘记去官方看了...

p7zip 原来的开发者已经弃坑很久了(联系不上),现在有些发行版用的 p7zip 是其他人的 fork,比如 Arch 用的是 jinfeihan57/p7zip 。而且正是因为这个理由 7-zip 作者才亲自下场支持 Linux 。
最让我感叹的是 7-zip 终于放出源码了。这几年 7-zip 一直没放源码,于是 p7zip 核心算法一直没啥改进,也就 FLZMA2 不错,但还是比不上 7-zip 自带的 LZMA2 实现。

7zip 不是一直是开源的吗?“没放源码”指的是什么情况?

7-zip 的开源是随每个版本一起发布源码,最近几年的版本一直都是 alpha 版,也没放源码。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服