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        //判断软件包是否可用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值