searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Yum命令速查指南:从安装到卸载的全流程操作

2025-10-21 10:38:09
0
0

一、Yum命令基础架构

1.1 核心组件解析

yum通过三个关键组件实现功能:

  • 仓库元数据:存储在.repo文件中,定义软件包来源、版本及依赖关系。
  • 依赖解析引擎:自动计算软件包间的依赖关系,避免手动处理冲突。
  • 缓存机制:本地缓存元数据与已下载包,加速后续操作。

1.2 配置文件路径

  • 全局配置:/etc/yum.conf(定义全局参数如缓存目录、日志路径)。
  • 仓库配置:/etc/yum.repos.d/目录下的.repo文件(每个文件可定义多个仓库)。

二、软件包安装全流程

2.1 单软件包安装

基本语法
yum install <package-name>

操作步骤

  1. 搜索软件包(可选):
    使用yum search <keyword>查找包含关键字的软件包。例如:
    yum search httpd 可列出所有与Apache相关的包。

  2. 查看软件包详情(可选):
    通过yum info <package-name>获取版本、大小、依赖等详细信息。

  3. 执行安装
    输入yum install httpd后,系统会:

    • 检查依赖关系(如需安装mod_sslapr等)。
    • 提示确认总下载大小与安装数量。
    • 输入y确认后开始下载并安装。
  4. 验证安装

    • 检查服务状态:systemctl status httpd
    • 查看文件列表:rpm -ql httpd

2.2 批量安装与组安装

批量安装
通过空格分隔多个包名实现一次性安装:
yum install httpd php mysql-server

组安装
系统预定义了功能相关的软件包组(如开发工具、Web服务器),可通过以下命令查看:
yum grouplist
安装指定组:
yum groupinstall "Web Server"
组安装的优势在于自动处理组内所有包的依赖关系,避免遗漏关键组件。

2.3 安装特定版本

当仓库中存在多个版本时,可通过以下方式指定:

  1. 查看可用版本
    yum list --showduplicates <package-name>
    输出示例:

     
    httpd.x86_64 2.4.6-95.el7 base
     
    httpd.x86_64 2.4.6-97.el7 updates
  2. 安装指定版本
    yum install httpd-2.4.6-97.el7


三、软件包更新策略

3.1 单软件包更新

基本语法
yum update <package-name>

操作场景

  • 修复已知漏洞。
  • 获取新功能或性能优化。

注意事项

  • 更新前建议备份配置文件(如/etc/httpd/conf/httpd.conf)。
  • 核心系统组件(如内核)更新后需重启生效。

3.2 全系统更新

基本语法
yum update(不带包名时更新所有可升级包)

操作流程

  1. 生成更新列表
    yum check-update(仅列出待更新包,不执行操作)。

  2. 执行更新
    yum update会显示所有待更新包的总大小与变更数量,确认后输入y开始下载。

  3. 处理依赖变更
    若更新涉及依赖关系调整(如某库版本升级),yum会自动计算最小变更集。

3.3 更新配置管理

  • 排除特定包
    /etc/yum.conf中添加exclude=kernel*可跳过内核更新。
  • 仅下载不安装
    使用yum update --downloadonly --downloaddir=/tmp/将包下载到指定目录。

四、软件包卸载与清理

4.1 单软件包卸载

基本语法
yum remove <package-name>

操作细节

  1. 依赖关系处理
    若卸载的包被其他软件依赖,yum会提示相关依赖包是否一并移除。例如卸载php时,若wordpress依赖它,系统会询问是否同时删除wordpress

  2. 配置文件保留
    默认情况下,yum remove不会删除用户修改的配置文件(如/etc/httpd/下的文件),需手动清理或使用rpm -e强制删除。

4.2 批量卸载与组卸载

批量卸载
通过空格分隔多个包名:
yum remove httpd php mysql-server

组卸载
查看已安装的组:
yum grouplist hidden | grep "Installed"
卸载指定组:
yum groupremove "Web Server"

4.3 卸载残留清理

  1. 清理依赖包
    使用yum autoremove删除不再被任何软件依赖的孤立包。例如:
    曾安装php-mysql作为php的扩展,卸载php后运行yum autoremove可自动删除php-mysql

  2. 清理缓存
    yum clean all会删除:

    • /var/cache/yum/下的元数据缓存。
    • 已下载但未安装的RPM包。
      此操作可释放磁盘空间并避免缓存数据导致的更新问题。

五、高级操作技巧

5.1 历史记录管理

yum会记录所有操作(安装、更新、卸载),可通过以下命令查看与回滚:

  • 查看历史记录
    yum history
    输出示例:

     
    ID | 命令行 | 日期和时间 | 操作数
     
    10 | install httpd php | 2023-05-10 14:00 | 2
     
    11 | update httpd | 2023-05-15 09:30 | 1
  • 查看某次操作的详细信息
    yum history info 10

  • 回滚操作
    yum history undo 10(撤销ID为10的安装操作)
    yum history rollback 10(将系统恢复到ID为10操作前的状态)

5.2 仓库管理

  1. 启用/禁用仓库
    临时禁用某个仓库(如避免从测试仓库安装):
    yum install --disablerepo=epel <package-name>
    永久禁用需编辑.repo文件,将enabled=1改为enabled=0

  2. 指定仓库安装
    仅从特定仓库安装包:
    yum install --enablerepo=base <package-name>

5.3 性能优化

  • 并行下载
    /etc/yum.conf中设置max_parallel_downloads=5可同时下载多个包,加速安装过程。

  • 使用最快镜像
    安装yum-plugin-fastestmirror插件后,yum会自动选择响应最快的仓库镜像。


六、常见问题解决

6.1 依赖冲突处理

场景:安装包A需要库X的1.0版本,但包B需要库X的2.0版本。

解决方案

  1. 查看冲突详情
    yum install <package-A>会提示具体冲突的包与版本。

  2. 使用--skip-broken跳过问题包
    yum install --skip-broken <package-A>先安装无冲突的部分。

  3. 手动调整依赖
    若冲突包非核心组件,可尝试卸载冲突包或寻找替代版本。

6.2 仓库不可用

错误提示Could not retrieve mirrorlist

排查步骤

  1. 检查网络连接是否正常。
  2. 确认仓库配置中的baseurlmirrorlistURL是否可访问。
  3. 临时禁用问题仓库后重试:
    yum install --disablerepo=* --enablerepo=base <package-name>

6.3 锁文件冲突

错误提示Another app is currently holding the yum lock

解决方法

  1. 查看占用锁的进程:
    ps aux | grep yum

  2. 终止相关进程(如kill -9 <PID>)或等待其完成。

  3. 删除锁文件(谨慎操作):
    rm -f /var/run/yum.pid


七、最佳实践建议

  1. 定期更新系统
    每周执行一次yum update,减少安全风险。

  2. 谨慎使用--assumeyes
    在脚本中避免直接使用yum install -y,防止意外覆盖关键文件。

  3. 备份配置文件
    更新或卸载前备份/etc/下的相关配置目录。

  4. 监控磁盘空间
    定期运行yum clean allpackage-cleanup --quiet --leaves清理无用包。


结语

yum命令通过自动化依赖管理与批量操作能力,显著提升了Linux系统下的软件包管理效率。从基础安装到复杂卸载,从依赖冲突解决到历史记录回滚,掌握其全流程操作是开发者与运维人员的必备技能。通过合理配置仓库、优化下载策略及遵循最佳实践,可进一步释放yum的潜力,确保系统环境的稳定与高效运行。

0条评论
0 / 1000
c****t
341文章数
0粉丝数
c****t
341 文章 | 0 粉丝
原创

Yum命令速查指南:从安装到卸载的全流程操作

2025-10-21 10:38:09
0
0

一、Yum命令基础架构

1.1 核心组件解析

yum通过三个关键组件实现功能:

  • 仓库元数据:存储在.repo文件中,定义软件包来源、版本及依赖关系。
  • 依赖解析引擎:自动计算软件包间的依赖关系,避免手动处理冲突。
  • 缓存机制:本地缓存元数据与已下载包,加速后续操作。

1.2 配置文件路径

  • 全局配置:/etc/yum.conf(定义全局参数如缓存目录、日志路径)。
  • 仓库配置:/etc/yum.repos.d/目录下的.repo文件(每个文件可定义多个仓库)。

二、软件包安装全流程

2.1 单软件包安装

基本语法
yum install <package-name>

操作步骤

  1. 搜索软件包(可选):
    使用yum search <keyword>查找包含关键字的软件包。例如:
    yum search httpd 可列出所有与Apache相关的包。

  2. 查看软件包详情(可选):
    通过yum info <package-name>获取版本、大小、依赖等详细信息。

  3. 执行安装
    输入yum install httpd后,系统会:

    • 检查依赖关系(如需安装mod_sslapr等)。
    • 提示确认总下载大小与安装数量。
    • 输入y确认后开始下载并安装。
  4. 验证安装

    • 检查服务状态:systemctl status httpd
    • 查看文件列表:rpm -ql httpd

2.2 批量安装与组安装

批量安装
通过空格分隔多个包名实现一次性安装:
yum install httpd php mysql-server

组安装
系统预定义了功能相关的软件包组(如开发工具、Web服务器),可通过以下命令查看:
yum grouplist
安装指定组:
yum groupinstall "Web Server"
组安装的优势在于自动处理组内所有包的依赖关系,避免遗漏关键组件。

2.3 安装特定版本

当仓库中存在多个版本时,可通过以下方式指定:

  1. 查看可用版本
    yum list --showduplicates <package-name>
    输出示例:

     
    httpd.x86_64 2.4.6-95.el7 base
     
    httpd.x86_64 2.4.6-97.el7 updates
  2. 安装指定版本
    yum install httpd-2.4.6-97.el7


三、软件包更新策略

3.1 单软件包更新

基本语法
yum update <package-name>

操作场景

  • 修复已知漏洞。
  • 获取新功能或性能优化。

注意事项

  • 更新前建议备份配置文件(如/etc/httpd/conf/httpd.conf)。
  • 核心系统组件(如内核)更新后需重启生效。

3.2 全系统更新

基本语法
yum update(不带包名时更新所有可升级包)

操作流程

  1. 生成更新列表
    yum check-update(仅列出待更新包,不执行操作)。

  2. 执行更新
    yum update会显示所有待更新包的总大小与变更数量,确认后输入y开始下载。

  3. 处理依赖变更
    若更新涉及依赖关系调整(如某库版本升级),yum会自动计算最小变更集。

3.3 更新配置管理

  • 排除特定包
    /etc/yum.conf中添加exclude=kernel*可跳过内核更新。
  • 仅下载不安装
    使用yum update --downloadonly --downloaddir=/tmp/将包下载到指定目录。

四、软件包卸载与清理

4.1 单软件包卸载

基本语法
yum remove <package-name>

操作细节

  1. 依赖关系处理
    若卸载的包被其他软件依赖,yum会提示相关依赖包是否一并移除。例如卸载php时,若wordpress依赖它,系统会询问是否同时删除wordpress

  2. 配置文件保留
    默认情况下,yum remove不会删除用户修改的配置文件(如/etc/httpd/下的文件),需手动清理或使用rpm -e强制删除。

4.2 批量卸载与组卸载

批量卸载
通过空格分隔多个包名:
yum remove httpd php mysql-server

组卸载
查看已安装的组:
yum grouplist hidden | grep "Installed"
卸载指定组:
yum groupremove "Web Server"

4.3 卸载残留清理

  1. 清理依赖包
    使用yum autoremove删除不再被任何软件依赖的孤立包。例如:
    曾安装php-mysql作为php的扩展,卸载php后运行yum autoremove可自动删除php-mysql

  2. 清理缓存
    yum clean all会删除:

    • /var/cache/yum/下的元数据缓存。
    • 已下载但未安装的RPM包。
      此操作可释放磁盘空间并避免缓存数据导致的更新问题。

五、高级操作技巧

5.1 历史记录管理

yum会记录所有操作(安装、更新、卸载),可通过以下命令查看与回滚:

  • 查看历史记录
    yum history
    输出示例:

     
    ID | 命令行 | 日期和时间 | 操作数
     
    10 | install httpd php | 2023-05-10 14:00 | 2
     
    11 | update httpd | 2023-05-15 09:30 | 1
  • 查看某次操作的详细信息
    yum history info 10

  • 回滚操作
    yum history undo 10(撤销ID为10的安装操作)
    yum history rollback 10(将系统恢复到ID为10操作前的状态)

5.2 仓库管理

  1. 启用/禁用仓库
    临时禁用某个仓库(如避免从测试仓库安装):
    yum install --disablerepo=epel <package-name>
    永久禁用需编辑.repo文件,将enabled=1改为enabled=0

  2. 指定仓库安装
    仅从特定仓库安装包:
    yum install --enablerepo=base <package-name>

5.3 性能优化

  • 并行下载
    /etc/yum.conf中设置max_parallel_downloads=5可同时下载多个包,加速安装过程。

  • 使用最快镜像
    安装yum-plugin-fastestmirror插件后,yum会自动选择响应最快的仓库镜像。


六、常见问题解决

6.1 依赖冲突处理

场景:安装包A需要库X的1.0版本,但包B需要库X的2.0版本。

解决方案

  1. 查看冲突详情
    yum install <package-A>会提示具体冲突的包与版本。

  2. 使用--skip-broken跳过问题包
    yum install --skip-broken <package-A>先安装无冲突的部分。

  3. 手动调整依赖
    若冲突包非核心组件,可尝试卸载冲突包或寻找替代版本。

6.2 仓库不可用

错误提示Could not retrieve mirrorlist

排查步骤

  1. 检查网络连接是否正常。
  2. 确认仓库配置中的baseurlmirrorlistURL是否可访问。
  3. 临时禁用问题仓库后重试:
    yum install --disablerepo=* --enablerepo=base <package-name>

6.3 锁文件冲突

错误提示Another app is currently holding the yum lock

解决方法

  1. 查看占用锁的进程:
    ps aux | grep yum

  2. 终止相关进程(如kill -9 <PID>)或等待其完成。

  3. 删除锁文件(谨慎操作):
    rm -f /var/run/yum.pid


七、最佳实践建议

  1. 定期更新系统
    每周执行一次yum update,减少安全风险。

  2. 谨慎使用--assumeyes
    在脚本中避免直接使用yum install -y,防止意外覆盖关键文件。

  3. 备份配置文件
    更新或卸载前备份/etc/下的相关配置目录。

  4. 监控磁盘空间
    定期运行yum clean allpackage-cleanup --quiet --leaves清理无用包。


结语

yum命令通过自动化依赖管理与批量操作能力,显著提升了Linux系统下的软件包管理效率。从基础安装到复杂卸载,从依赖冲突解决到历史记录回滚,掌握其全流程操作是开发者与运维人员的必备技能。通过合理配置仓库、优化下载策略及遵循最佳实践,可进一步释放yum的潜力,确保系统环境的稳定与高效运行。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0