怎样自定义centos extract配置
导读:在 CentOS 中自定义 extract 的可行路径 在 CentOS 里“extract”并非单一命令,常见有三类场景:使用 tar/unzip 解压归档、使用 yum/dnf 的 extract 插件从 RPM 包提取文件、在安装阶段...
在 CentOS 中自定义 extract 的可行路径
在 CentOS 里“extract”并非单一命令,常见有三类场景:使用 tar/unzip 解压归档、使用 yum/dnf 的 extract 插件从 RPM 包提取文件、在安装阶段从 ISO 提取内容。不同场景的“自定义”方式不同,可按下列方法配置与扩展。
场景一 使用 tar 或 unzip 的解压自定义
- 常用自定义项
- 指定解压目录:使用 -C /path;解压时显示详情用 -v。
- 按压缩格式选择:gzip 用 -z,bzip2 用 -j。
- 路径与内容控制:按模式提取用 –wildcards ‘*.log’;排除路径用 –exclude='dir/'**;仅按清单提取用 –files-from=list.txt;重命名/改写路径用 –transform ‘s,^old/,new/,’。
- 权限与属主:不保留原有属主/权限可用 –no-same-owner / --no-same-permissions;必要时再用 chown/chmod 调整。
- 示例
- 仅解压 .conf 文件到指定目录并扁平化一级目录:
tar -xzf app.tar.gz --wildcards '*.conf' \ --transform 's,^[^/]\+/,,' -C /etc/myapp - 按清单提取并排除临时目录:
tar -xf src.tar -T files.txt --exclude='temp/**' -v
- 仅解压 .conf 文件到指定目录并扁平化一级目录:
以上选项适用于 tar;unzip 亦可通过 -d 指定目录,结合 shell 通配实现过滤。
场景二 使用 YUM/DNF 的 extract 插件自定义提取 RPM
- 启用与安装
- 确认插件可用:安装 yum-plugins-core,并启用插件(在 /etc/yum/pluginconf.d/extract.conf 中设置 enabled=1;确保主配置 /etc/yum.conf 的 plugins=1)。
- 自定义提取行为
- 指定目标目录:在插件配置中设置 destdir=/opt/extracted/$basearch/$name-$version 以统一存放结构。
- 选择保留策略:通过 keeptree=1/0 控制是否保留包内目录结构;必要时在提取后配合 chown/chmod 调整权限。
- 执行提取:使用命令 yum extract package_name 或 dnf extract package_name;提取完成后检查 /var/log/yum.log 验证结果。
- 示例
# 1) 安装与启用 sudo yum install -y yum-plugins-core sudo sed -i 's/^enabled=0/enabled=1/' /etc/yum/pluginconf.d/extract.conf echo 'destdir=/opt/extracted/$basearch/$name-$version' | sudo tee -a /etc/yum/pluginconf.d/extract.conf # 2) 执行提取 sudo yum extract bash # 3) 校验 ls /opt/extracted/*/bash-* tail -n 50 /var/log/yum.log
上述步骤涵盖插件安装、配置与验证要点。
场景三 从 ISO 提取内容的自定义
- 直接解压 ISO
- 使用 7z/unar 等工具将 ISO 内容提取到指定目录,再按需执行脚本或移动文件:
7z x -o/opt/iso-root CentOS-7-x86_64-DVD.iso
- 使用 7z/unar 等工具将 ISO 内容提取到指定目录,再按需执行脚本或移动文件:
- 在安装阶段自定义
- 若目的是在安装过程中执行自定义逻辑,推荐在 Kickstart 的 %post 段写入脚本,而非依赖 ISO 内部提取流程:
%post echo "Running custom script..." /path/to/your/script.sh %end
- 若目的是在安装过程中执行自定义逻辑,推荐在 Kickstart 的 %post 段写入脚本,而非依赖 ISO 内部提取流程:
- 说明
- 安装器的 ISO 提取工具通常不直接支持内嵌自定义脚本;需要自定义时,优先采用“先提取后执行”或 Kickstart %post 的方式。
场景四 进阶 编写可复用的提取脚本
- 目标:统一目录结构、按清单/模式提取、自动校正权限。
- 示例脚本
#!/usr/bin/env bash set -Eeuo pipefail RPM=$1; DEST=${ 2:-./extracted} mkdir -p "$DEST" rpm2cpio "$RPM" | cpio -idmv -D "$DEST" # 示例:将所有 .conf 设为 644,属主为 root:root find "$DEST" -type f -name '*.conf' -exec chmod 644 { } + -exec chown root:root { } + - 使用
chmod +x extract-rpm.sh ./extract-rpm.sh example.rpm /opt/extracted/example
通过脚本可将“提取路径、过滤规则、权限修正”等固化为可复用流程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样自定义centos extract配置
本文地址: https://pptw.com/jishu/747976.html
