Linux中手动安装7-Zip软件文档

  • 7zip位于EPEL源中,如果服务器可以联网或者配置了本地EPEL源则可以直接安装
yum install p7zip p7zip-plugins -y

对于无法联网且没有配置本地EPEL源的服务器,可以通过官网下载安装包后,上传至服务器,手动安装

## 下载地址:https://sourceforge.net/projects/p7zip/files/latest/download
## 文件名: p7zip_16.02_src_all.tar.bz2
## 上传目录: /tmp/p7zip_16.02_src_all.tar.bz2
## 以下是执行安装的命令
cd /tmp/ && tar xjvf p7zip_16.02_x86_linux_bin.tar.bz2
cd p7zip_16.02 && bash install.sh
echo $?
7za --version
  • 通常会默认安装至/usr/local路径下,如果需要执行安装路径,可以修改install.sh内容后进行安装
# global install
DEST_HOME=/usr/local
# for testing 
# DEST_HOME=${HOME}/INSTALL/usr/local
DEST_BIN=${DEST_HOME}/bin
DEST_SHARE=${DEST_HOME}/lib/p7zip
DEST_MAN=${DEST_HOME}/man
DEST_SHARE_DOC=${DEST_HOME}/share/doc/p7zip
DEST_DIR=
[ "$1" ] && DEST_BIN="$1"
[ "$2" ] && DEST_SHARE="$2"
[ "$3" ] && DEST_MAN="$3"
[ "$4" ] && DEST_SHARE_DOC="$4"
[ "$5" ] && DEST_DIR="$5"

以下是p7zip 16.02 的官方完整中文技术文档:


p7zip 16.02 技术文档

官网:http://p7zip.sourceforge.net/
7-Zip官网:www.7-zip.org
最后更新:2025年4月21日


一、组件说明

p7zip 是 Windows 程序 7z.exe 和 7za.exe 的跨平台移植版本,包含以下核心组件:

组件功能特性
7z需插件支持(7z.so 和 Codecs/Rar.so),支持最多压缩格式
7za独立可执行文件,支持格式少于 7z(7z/LZMA/BCJ/BCJ2/GZIP/ZIP等)
7zr轻量级独立可执行文件,仅支持 7z/LZMA/BCJ/BCJ2 格式
GUI工具7zG(测试版)、7zFM(Alpha版)

二、关键警告

⚠️ Linux/Unix 系统备份规范

  1. 禁止直接使用 7z 格式备份目录
    • 7-zip 不存储文件所有者/组信息
    正确操作流程

    # 备份目录
    tar cf - 目录 | 7za a -si 目录.tar.7z
    # 恢复备份
    7za x -so 目录.tar.7z | tar xf -
    
  2. 跨平台文件传输建议
    • 使用 7za a 目录.7z 目录 而非 -r 参数(递归可能不符合预期)
    • 避免使用 目录/*(会遗漏隐藏文件如 .profile


三、编译构建

3.1 二进制包直接使用

# 直接运行预编译二进制(已在 Debian 3、Ubuntu 14.10 验证)
./bin/7za

3.2 源码编译(多平台支持)

步骤

  1. 根据操作系统选择 makefile:
    cp makefile.linux_x86_asm_gcc_4 makefile.machine
    
  2. 编译指令:
    make all_test          # 完整编译与测试
    make -j4              # 4核并行编译
    make sfx              # 生成自解压模块 7zCon.sfx
    make test_7z          # 测试 7z 组件
    

已验证平台
• x86/AMD64:Linux、MacOS 10.6.6、Android
• PowerPC/ARM:MacOS X 10.4、Galaxy Note 3
• 其他:Solaris、AIX、HP-UX 等(详见原文档构建章节)


四、安装部署

4.1 标准安装

# 方法1:使用安装脚本(需root权限)
sudo ./install.sh# 方法2:手动部署
cp bin/7za /usr/local/bin/
cp -r Codecs /usr/local/lib/7z/

4.2 插件与SFX支持

插件部署:需将 7z.soCodecs 目录置于相同路径
自解压模块:复制 7zCon.sfx 到 7za/7z 所在目录


五、使用指南

5.1 基础命令

7za t 归档.7z          # 测试归档完整性
7za l 归档.7z          # 列出归档内容
7za x 归档.7z          # 解压到当前目录
7za a 归档.7z 文件1 文件N  # 创建归档

5.2 高级参数

参数功能
-p密码设置归档密码
-mhe=on启用归档头加密(仅7z格式)
-m0=lzma2使用 LZMA2 压缩算法
-mx=9最高压缩级别(Ultra)

示例

7za a -m0=lzma2 -mx=9 -md=32m -mfb=64 归档.7z 目录

六、性能优化

6.1 基准测试

7za b              # 标准LZMA测试
7za b "-mm=*"      # 测试所有压缩方法

6.2 大页内存配置(Linux)

# 配置大页内存
echo 296 > /proc/sys/vm/nr_hugepages
mount -t hugetlbfs none /hugepages# 启用大页支持
export HUGETLB_PATH=/hugepages
7za -slp a 大文件.7z 大文件.tar

七、许可与限制

7.1 许可证

• 核心代码:GNU LGPL
• AES/RAR插件:附加许可证限制(详见 DOC/License.txt)

7.2 已知限制

类型说明
文件权限不保留 tar 格式的 UID/GID
编码支持需系统环境为 UTF-8 正确处理 Unicode 文件名
Windows特性无事件对象和 WaitForMultipleObject 等效实现

八、开发者资源

8.1 代码分析工具

make cppcheck              # 静态分析
scan-build make all4       # Clang 分析
make -f makefile.linux_valgrind test  # 动态内存检测

8.2 调试支持

环境变量HUGETLB_PATH 用于大页内存路径指定
编译标记FIXME 标注待完善代码,FIXED 标注已适配 Unix 的修改


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/79973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[密码学基础]GM/T 0018-2023 密码设备应用接口规范深度解析:技术革新与开发者实践

GM/T 0018-2023 密码设备应用接口规范深度解析:技术革新与开发者实践 GM/T 0018-2023《密码设备应用接口规范》是中国密码行业的重要标准,于2023年12月4日发布,2024年6月1日正式实施,替代了2012年版标准。该标准旨在规范密码设备…

8.QT-按钮类控件|Push Button|Radio Button|Check Box|Tool Button(C++)

Push Button 使⽤ QPushButton 表⽰⼀个按钮.这也是当前我们最熟悉的⼀个控件了. QPushButton 继承⾃ QAbstractButton .这个类是⼀个抽象类.是其他按钮的⽗类 在Qt Designer中也能够看到这⾥的继承关系 属性说明text按钮中的⽂本icon按钮中的图标iconSize按钮中图标的尺⼨sh…

CFIS-YOLO:面向边缘设备的木材缺陷检测轻量级网络解析

论文地址:https://arxiv.org/pdf/2504.11305 目录 一、论文核心贡献 二、创新点详解 2.1 CARAFE动态上采样 工作原理 优势对比 2.2 C2f_FNB轻量模块 计算效率 2.3 Inner-SIoU损失函数 三、实验验证 3.1 消融实验 3.2 对比实验 四、应用部署 4.1 边缘设备部署流程…

BUUCTF PWN刷题笔记(1-9)

才知道,由于栈对齐,直接动调看栈估计会错,用cyclic看 1.test_your_nc NC连接一下,这个网站似乎直接访问是不中的,怀疑是没开启web的端口。NC链接输入cat flag就OK了,应该只是让我这样的小菜鸟培养自信用的…

C#处理网络传输中不完整的数据流

1、背景 在读取byte数组的场景(例如:读取文件、网络传输数据)中,特别是网络传输的场景中,非常有可能接收了不完整的byte数组,在将byte数组转换时,因字符的缺失/增多,转为乱码。如下…

PostgreSQL 用户资源管理

PostgreSQL 用户资源管理 PostgreSQL 提供了多种机制来管理和限制用户对数据库资源的使用,以下是全面的资源管理方法: 1 连接限制 1.1 限制最大连接数 -- 在 postgresql.conf 中设置 max_connections 100 -- 全局最大连接数-- 为特定用户设置连接限…

新书速览|OpenCV计算机视觉开发实践:基于Qt C++

《OpenCV计算机视觉开发实践:基于Qt C》 本书内容 OpenCV是计算机视觉领域的开发者必须掌握的技术。《OpenCV计算机视觉开发实践:基于Qt C》基于 OpenCV 4.10与Qt C进行编写,全面系统地介绍OpenCV的使用及实战案例,并配套提供全书示例源码、PPT课件与作…

【上位机——MFC】消息映射机制

消息映射机制 Window消息分类消息映射机制的使用代码示例 MFC框架利用消息映射机制把消息、命令与它们的处理函数映射起来。具体实现方法是在每个能接收和处理消息的类中,定义一个消息和消息函数指针对照表,即消息映射表。 在不重写WindowProc虚函数的大…

docker学习笔记2-最佳实践

一、在容器中启动mysql的最佳实践 (一)查找目录 1、mysql的配置文件路径 /etc/mysql/conf.d 2、mysql的数据目录 /var/lib/mysql 3、环境变量 4、端口 mysql的默认端口3306。 (二)启动命令 docker run -d -p 3306:3306 …

Vue3核心源码解析

/packages/complier-core 定位​​:​​编译时核心​​,处理 Vue 模板的编译逻辑。​​核心功能​​: ​​模板解析​​:将 .vue 文件的模板语法(HTML-like)解析为 ​​抽象语法树 (AST)​​。​​转换优化…

n8n 中文系列教程_05.如何在本机部署/安装 n8n(详细图文教程)

n8n 是一款强大的开源工作流自动化工具,可帮助你连接各类应用与服务,实现自动化任务。如果你想快速体验 n8n 的功能,本机部署是最简单的方式。本教程将手把手指导你在 Windows 或 MacOS 上通过 Docker 轻松安装和运行 n8n,无需服务…

【python】pyCharm常用快捷键使用-(2)

pyCharm常用快捷键使用 快速导入任意类 【CTRLALTSPACE】代码补全【CTRLSHIFTENTER】代码快速修正【ALTENTER】代码调试快捷键

Docker 镜像、容器和 Docker Compose的区别

前言:Docker 的镜像、容器和 Docker Compose 是容器化技术的核心组件,以下是对它们的详细解析及使用场景说明。 ​​1、Docker 镜像(Image)​​ ​​定义​​: 镜像是只读模板,包含运行应用程序所需的代码、…

算法——背包问题(分类)

背包问题(Knapsack Problem)是一类经典的组合优化问题,广泛应用于资源分配、投资决策、货物装载等领域。根据约束条件和问题设定的不同,背包问题主要分为以下几种类型: 1. 0-1 背包问题(0-1 Knapsack Probl…

多路由器通过RIP动态路由实现通讯(单臂路由)

多路由器通过RIP动态路由实现通讯(单臂路由) R1(开启端口并配置IP) Router>en Router#conf t Router(config)#int g0/0 Router(config-if)#no shu Router(config-if)#no shutdown Router(config-if)#ip add 192.168.10.254 255.255.255.0 Router(c…

从底层设计原理分析并理解SQL 的执行顺序

​一、执行顺序的底层设计原理​​ ​​1. 数据源的确定与连接(FROM → ON → JOIN)​​ ​​FROM​​:数据库首先需要确定数据的物理来源,从磁盘加载表或子查询的原始数据。此时尚未应用任何筛选,仅读取元数据&#…

游戏引擎学习第237天:使用 OpenGL 显示图像

win32_game.cpp: 禁用 PFD_DOUBLEBUFFER 我们正在处理一个新的开发阶段,目标是在使用 OpenGL 渲染的同时能正常通过 OBS 进行直播。昨天我们已经尝试了一整天来解决这个问题,希望能找到一种方式让 OBS 能正确地捕捉到 OpenGL 的窗口画面。虽然我们不确定…

(二)mac中Grafana监控Linux上的MySQL(Mysqld_exporter)

框架:GrafanaPrometheusMysqld_exporter 一、监控查看端安装 Grafana安装-CSDN博客 普罗米修斯Prometheus监控安装(mac)-CSDN博客 1.启动Grafana服务 brew services start grafana 打开浏览器输入http://localhost:3000进入grafana登录…

GitHub 趋势日报 (2025年04月17日)

本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1Anduin2017/HowToCook程序员在家做饭方法指南。Programmer’s guide about how to cook at home (Simplified Chinese onl…⭐ 224…

(一)mac中Grafana监控Linux上的CPU等(Node_exporter 安装使用)

框架:GrafanaPrometheusNode_exporter 机器状态监控(监控服务器CPU,硬盘,网络等状态) Node_exporter安装在被测服务器上,启动服务 各步骤的IP地址要换为被测服务器的IP地址Prometheus.yml的 targets值网页访问的ip部分grafana添加数据源的…