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.pswp.cn/diannao/79973.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79973.shtml
英文地址,請注明出處:http://en.pswp.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添加數據源的…