首页主机资讯怎样自定义centos extract配置

怎样自定义centos extract配置

时间2025-11-14 13:35:03发布访客分类主机资讯浏览1399
导读:在 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
      

以上选项适用于 tar;unzip 亦可通过 -d 指定目录,结合 shell 通配实现过滤。

场景二 使用 YUM/DNF 的 extract 插件自定义提取 RPM

  • 启用与安装
    • 确认插件可用:安装 yum-plugins-core,并启用插件(在 /etc/yum/pluginconf.d/extract.conf 中设置 enabled=1;确保主配置 /etc/yum.confplugins=1)。
  • 自定义提取行为
    • 指定目标目录:在插件配置中设置 destdir=/opt/extracted/$basearch/$name-$version 以统一存放结构。
    • 选择保留策略:通过 keeptree=1/0 控制是否保留包内目录结构;必要时在提取后配合 chown/chmod 调整权限。
    • 执行提取:使用命令 yum extract package_namednf 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
      
  • 在安装阶段自定义
    • 若目的是在安装过程中执行自定义逻辑,推荐在 Kickstart%post 段写入脚本,而非依赖 ISO 内部提取流程:
      %post
      echo "Running custom script..."
      /path/to/your/script.sh
      %end
      
  • 说明
    • 安装器的 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
centos extract配置的性能影响有哪些 centos extract配置的常见错误有哪些

游客 回复需填写必要信息