tar结合bzip2制作开源源码包的核心是先归档再压缩(或一步完成),生成高比率的.tar.bz2文件;命令为tar -cjvf project-x.y.z.tar.bz2 project-x.y.z/,其中-c创建归档、-j调用bzip2、-v显示过程、-f指定输出文件,推荐加-p保留权限并用--exclude过滤非源码内容。

用 tar 结合 bzip2 制作开源源码包,核心是先归档、再压缩(或一步完成),生成 `.tar.bz2` 文件。这种格式在开源社区很常见,比如 Linux 内核、GNU 工具链的发布包就多采用它——压缩率比 gzip 更高,适合分发体积较大的源码目录。
确认源码目录结构清晰
打包前建议整理好源码树:主目录名应含项目名和版本号(如 nginx-1.25.4),所有源文件、configure、Makefile.am、README 等都在该目录下。避免把杂散文件或构建产物(如 .o、objs/)混入,否则会增大包体积且影响可复现性。
使用 -j 选项一键打包压缩
直接运行以下命令即可生成标准 `.tar.bz2` 包:
tar -cjvf nginx-1.25.4.tar.bz2 nginx-1.25.4/
其中:
-c 表示创建归档
-j 表示调用 bzip2 压缩(生成 .bz2 流)
-v 显示过程(可选,便于确认内容)
-f 指定输出文件名,必须放在最后
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
验证包完整性与内容
生成后别急着上传,先快速检查:
- 用
ls -lh nginx-1.25.4.tar.bz2看大小是否合理(通常比原始目录小 40%–60%) - 用
tar -tjf nginx-1.25.4.tar.bz2 | head -n 10列出前 10 个文件,确认路径无误、没漏关键文件 - 解压测试:
mkdir test && tar -xjf nginx-1.25.4.tar.bz2 -C test && ls test/,确保能干净还原
补充:如需保留权限或排除临时文件
对正式发布的源码包,建议加上两个实用选项:
- -p:保留文件权限(如 configure 的可执行位)
- --exclude='*.log' --exclude='build/':过滤掉日志、构建目录等非源码内容
完整命令示例:tar -cjvpf nginx-1.25.4.tar.bz2 --exclude='*.tmp' --exclude='*.swp' nginx-1.25.4/










