一、主流 Linux 软件管理机制
目前主流 Linux 发行版使用的软件管理机制主要有两类:
| 发行版代表 |
软件管理机制 |
使用指令 |
线上升级机制 (指令) |
| Red Hat/Fedora |
RPM |
rpm, rpmbuild |
YUM (yum, dnf) |
| Debian/Ubuntu |
DPKG |
dpkg |
APT (apt-get) |
| RockyLinux |
RPM |
rpm, rpmbuild |
YUM (yum, dnf) |
二、RPM 基础概念
2.1 RPM 简介
- 全称:
RedHat Package Manager
- 特点:以数据库记录方式管理软件安装,安装前检查依赖关系
- 优势:
- 预编译打包,安装方便
- 数据库记录软件信息,便于查询、升级和反安装
- SRPM:含源代码的 RPM 包,用于自定义修改软件参数
2.2 RPM 软件命名规则
以 chrony-4.2-1.el9.rocky.1.0.x86_64.rpm 为例:
1 2
| chrony- 4.2- 1. el9.rocky.1.0.x86\_64 .rpm 软件名称 软件的版本资讯 释出的次数 适合的硬体平台 副檔名
|
2.3 硬件平台标识
- 常见标识:
i686, x86_64, noarch
noarch:不依赖硬件架构的软件包
2.4 RPM 优点
- 包含预编译程序和配置文件,免除重新编译
- 安装前检查系统环境,避免错误安装
- 提供详细的软件信息
- 数据库管理便于升级、移除、查询与验证
2.5 依赖问题与解决
- 依赖问题:上层软件依赖底层软件,未安装会导致安装失败
- 解决方式:使用
YUM 在线升级机制,自动分析并解决依赖关系
三、RPM 命令使用
3.1 RPM 查询 (query)
查询存储在 /var/lib/rpm/ 目录下的数据库:
1 2 3 4
| rpm -qa # 已安装软件列表 rpm -q\[licdR] 软件名称 # 已安装软件详细信息 rpm -qf 系统文件路径 # 查找文件所属软件 rpm -qp\[licdR] RPM包路径 # 查阅未安装RPM包信息
|
3.2 RPM 验证 (Verify)
用于检查软件文件是否被修改:
1 2 3 4
| rpm -Va # 验证所有已安装软件 rpm -V 软件名称 # 验证指定已安装软件 rpm -Vp RPM包路径 # 验证未安装的RPM包 rpm -Vf 系统文件路径 # 验证指定文件
|
验证结果标识:
S:文件大小改变
M:文件类型或属性改变
5:MD5 指纹码改变
D:设备主 / 次代码改变
L:链接路径改变
U:文件所属人改变
G:文件所属群组改变
T:文件建立时间改变
3.3 RPM 数字签名 (Signature)
- 作用:验证 RPM 包的完整性和来源合法性
- 工具:
GnuPG (GPG)
- 操作示例:
1 2 3
| rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9 # 导入公钥 rpm -qa | grep pubkey # 查看已安装的公钥 rpm -qi gpg-pubkey-xxx # 查看公钥详情
|
3.4 RPM 数据库重建
当数据库损坏时重建:
四、YUM 在线安装 / 升级机制
4.1 YUM 基本功能
YUM 基于 RPM,自动处理依赖关系:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| # 查询功能 yum clean all # 清除缓存 yum search 关键词 # 搜索软件 yum info 软件名称 # 查看软件信息 yum list # 列出所有可用软件 yum provides "*/文件名" # 查找提供指定文件的软件
# 安装/升级功能 yum install 软件名称 # 安装软件 yum update 软件名称 # 升级软件 yum check-update # 检查可升级软件 yum groupinstall "软件群组名称" # 安装软件群组
# 移除功能 yum remove 软件名称 # 移除软件
|
4.2 YUM 配置文件
- 配置文件位置:
/etc/yum.repos.d/*.repo
- 主要仓库:
baseos:基础操作系统组件
appstream:应用程序和流数据
extras:额外的软件包
- 配置示例:
1 2 3 4 5 6
| [baseos] name=Rocky Linux $releasever - BaseOS mirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearch&repo=BaseOS-$releasever$rltype gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9
|
五、Linux 日志管理简介
5.1 主要日志文件位置
- 大多数日志位于
/var/log 目录
- 常见日志文件:
/var/log/messages:系统错误和重要信息
/var/log/secure:认证相关信息
/var/log/cron:计划任务信息
/var/log/maillog:邮件系统信息
5.2 日志服务
- rsyslog:系统和网络服务日志记录
- systemd-journald:
systemd 提供的日志服务,记录开机过程信息
- logrotate:日志轮换,防止日志文件过大
5.3 日志查询命令
- journalctl:查询
systemd-journald 日志
1 2 3 4
| journalctl -n 20 # 显示最近20行日志 journalctl -u chronyd # 显示chronyd服务日志 journalctl -f # 持续监控日志 journalctl -p warning # 显示警告及以上级别日志
|
六、从源代码安装软件
6.1 编译安装流程
以安装 NCO 软件为例:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 1. 安装依赖 yum --enablerepo=epel install netcdf-devel
# 2. 下载源代码 git clone https://github.com/nco/nco.git cd nco
# 3. 配置编译选项 LDFLAGS="-lm" LIBS="-lm" ./configure --prefix=/usr/local --enable-udunits=no --enable-udunits2=no
# 4. 编译和安装 make -j # -j使用多核编译 make install
|
6.2 关键命令说明
configure:配置编译选项,指定安装路径等
make:编译源代码
make install:安装到指定位置