当前位置: 首页 > news >正文

Linux应用管理与YUM/DNF指南

一、Linux 应用程序组成**

1. Linux 命令与应用程序的区别

类别特点
内部命令exit, history, cd, source, echo 等(通过 help 查看完整列表)
Linux 命令1. 执行文件较小,通常位于 /bin/sbin 目录 2. 随操作系统安装 3. 固定格式:命令 + 选项 + 参数 4. 主要在字符界面操作
应用程序1. 执行文件位于 /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等目录 2. 需独立安装,提供独立功能(等同于软件) 3. 运行格式由开发者自定义 4. 可能支持图形界面;部分应用程序的命令行调用方式与 Linux 命令类似

type 命令名 : 查看该命令是否为内部命令(shell中已集成为内部命令)

2. 应用程序的组成

典型应用程序包含以下部分:

组件存储位置说明
(1) 普通可执行程序/usr/bin普通用户可执行
(2) 服务器/管理程序/usr/sbin仅管理员可执行
(3) 配置文件/etc//etc/子目录/子目录通常与应用程序同名
(4) 日志文件/var/log记录运行信息
(5) 参考文档/usr/share/doc说明文档、示例等
(6) man 手册/usr/share/man执行文件及配置的帮助手册

3. 软件包封装类型

类型扩展名适用系统特点
(1) RPM 包.rpmRHEL, Fedora, SUSE 等依赖性强
(2) DEB 包.debDebian, Ubuntu 等
(3) 源代码包.tar.gz/.tar.bz2所有 Linux 系统需编译安装

源码安装流程

tar -xzf app.tar.gz         # 解压
cd app-1.0/
./configure --prefix=/opt   # 配置安装路径
make                        # 编译
sudo make install           # 安装

二、RPM 包管理

1. RPM 软件包命名格式

coreutils-8.30-4.el7.x86_64.rpm
  • coreutils:软件名称
  • 8.30-4:版本号
  • .el7:发行版版本(RHEL/CentOS 7)
  • x86_64:处理器架构(noarch 表示通用)

2. RPM 命令操作

查询已安装的包:

rpm -qa                  # 列出所有已安装 RPM 包
rpm -qa | grep vsftpd    # 检查指定包是否安装
rpm -qi vsftpd           # 查看包的详细信息
rpm -ql vsftpd           # 查看包安装的文件列表
rpm -qf /path/to/file    # 查看文件所属的包

查询未安装的包(需完整路径):

rpm -qpi /path/to/package.rpm   # 查看包信息
rpm -qpl /path/to/package.rpm   # 查看包将安装的文件列表

安装与卸载:

rpm -ivh package.rpm     # 安装(显示进度)
rpm -Uvh package.rpm     # 更新(若未安装则放弃)
rpm -e package_name      # 卸载

常用选项:

  • --force:强制操作
  • --nodeps:忽略依赖关系

三、YUM 仓库管理

1. 配置 YUM 仓库

仓库配置文件需放在 /etc/yum.repos.d/ 目录,例如 server.repo

[base]                    # 仓库 ID
name=Base Repository      # 仓库描述
baseurl=file:///mnt/      # 仓库路径(本地/USB/网络)
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
enabled=1                 # 启用仓库
gpgcheck=0                # 关闭 GPG 验证

2. YUM 常用命令

yum install -y httpd        # 安装软件包
yum remove -y httpd         # 卸载软件包
yum update -y httpd         # 更新指定软件包
yum list                    # 列出所有可用/已安装包
yum groupinstall -y "Development Tools"   # 安装软件包组
yum groupremove -y "Development Tools"    # 卸载软件包组
yum group list              # 列出软件包组

dnf 命令:在 RHEL 8+ 中替代 YUM,语法与 YUM 一致(如 dnf install -y httpd)。

3. YUM/DNF 高级操作

# 搜索软件包
yum search nginx# 查看依赖关系
yum deplist httpd# 清理缓存
yum clean all && yum makecache# 查看历史操作
dnf history
dnf history undo 6      # 撤销第6次操作# 最小化安装组
dnf groupinstall "Minimal Install" --with-optional

4. 常见问题解决

依赖冲突处理:

# 1. 检查冲突包
rpm -qa | grep conflict-package# 2. 尝试修复
sudo dnf autoremove
sudo dnf --skip-broken update# 3. 手动解决
sudo rpm -e --nodeps conflict-package

四、扩展知识**

1. 包管理工具对比

功能rpmyumdnfapt
依赖解析
事务回滚
多仓库支持
配置文件管理部分

2. 最佳实践

  1. 优先使用高级工具dnf/yum > rpm > 源码编译

  2. 生产环境操作

    • 测试环境验证后再部署
    • 使用 yum history 记录变更
    • 重要操作前备份:sudo rpm -qa > installed_packages.log
  3. 自定义仓库

    # 创建本地仓库
    createrepo /opt/local-repo
    

3. 日志分析技巧

# 监控安装日志
tail -f /var/log/dnf.log# 检查错误(常见关键字)
grep -i 'error\|fail' /var/log/yum.log

通过 journalctl -u dnf-makecache 查看仓库缓存过程

五、网上 YUM 源配置指南

问题场景传统 RPMYUM 解决方案
安装 A 软件提示缺少依赖库 B自动下载 B 及其所有子依赖
依赖冲突强制安装导致系统崩溃智能选择兼容版本
循环依赖手动破解依赖链自动解析依赖环

1. 国内主流镜像源

服务商适用系统仓库地址特点
阿里云CentOS/RHELhttps://mirrors.aliyun.com/centos/覆盖全版本,更新快
腾讯云CentOS/RHELhttps://mirrors.tencent.com/centos/国内多节点加速
华为云CentOS/RHELhttps://repo.huaweicloud.com/centos/企业级稳定性
清华 TUNACentOS/EPELhttps://mirrors.tuna.tsinghua.edu.cn/学术网络优化
网易CentOShttp://mirrors.163.com/.help/centos/老版本支持完善

EPEL 源:企业版额外软件包(必装)

yum install -y epel-release  # 安装EPEL源

2. 配置步骤(CentOS/RHEL 为例)

步骤1:备份原有配置

sudo mkdir /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/

步骤2:下载新源配置(以阿里云为例)

# CentOS 7
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# CentOS 8
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo# EPEL源
sudo curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

步骤3:更新缓存

sudo yum clean all        # 清除旧缓存
sudo yum makecache        # 生成新缓存
sudo yum update           # 更新系统

3. 手动编写 .repo 文件示例

/etc/yum.repos.d/aliyun.repo


[base]
name=Aliyun CentOS-$releasever - Base
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1[epel]
name=Aliyun EPEL
baseurl=https://mirrors.aliyun.com/epel/$releasever/$basearch
gpgcheck=0
enabled=1
yum  repolist        //判断软件包是否可用
http://www.dtcms.com/a/302752.html

相关文章:

  • 迅为RK3568开发板OpeHarmony学习开发手册-配置电源管理芯片和点亮HDMI屏幕-配置电源管理芯片
  • ARM share memory
  • 智慧工地系统:科技赋能建筑新未来
  • 电子签章(PDF)
  • 阿里云可观测 2025 年 6 月产品动态
  • 【机器学习-4】 | 集成学习 / 随机森林篇
  • 以科力锐为例介绍常见的数据中心4种灾备方式
  • HDFS Block与Spark的partition对比
  • MCU+RTOS调试
  • unisS5800XP-G交换机配置命令之端口篇
  • 经典算法题解析:从思路到实现,掌握核心编程思维
  • 分布式数据库中的“分布式连接”(Distributed Joins)
  • YOLOv8 基于RTSP流目标检测
  • 【C++详解】深入解析继承 类模板继承、赋值兼容转换、派生类默认成员函数、多继承与菱形继承
  • 把振动数据转成音频并播放
  • Kubernetes --存储入门
  • 实时YOLO目标检测与跟踪系统设计
  • [蓝牙通信] 临界区管理 | volatile | 同步(互斥锁与信号量) | handle
  • 谷歌浏览器深入用法全解析:解锁高效网络之旅
  • UVA11990 ``Dynamic‘‘ Inversion
  • kotlin基础【3】
  • 第一章:Go语言基础入门之流程控制
  • Power Query合并数据
  • 力扣 hot100 Day58
  • JAVA东郊到家按摩服务同款同城家政服务按摩私教茶艺师服务系统小程序+公众号+APP+H5
  • EXCEL 怎么把汉字转换成拼音首字母
  • 10 - 大语言模型 —Transformer 搭骨架,BERT 装 “双筒镜”|解密双向理解的核心
  • Java-数构排序
  • ATF 运行时服务
  • 【Web】京麒CTF 2025 决赛 wp