管理应用程序
目录
一 Linux应用程序基础
1.Linux应用程序的系统文件构成
Linux 遵循 FHS(文件系统层次结构标准),openEuler 24,03 也严格遵循该标准,将应用程序的不同类型文件分散存储在指定目录,实现文件分类管理,便于系统识别和用户维护。所有应用程序的文件存储均遵循统一规范,典型组成部分及存储目录如下,是Linux 系统的核心设计原则,必须牢记:
1.普通可执行程序文件:存放于/usr/bin,所有普通用户均可执行,如 python3、nginx、tree 等
日常使用的程序。
2.服务器/管理程序文件:存放于/usr/sbin,仅 root 管理员可执行,多为系统服务、管理工具,
如firewalld、networkctl.
3.配置文件:核心目录/etc,若配置文件较多,会在/etc下创建专属子目录(如/etc/nginx、
/etc/my.cnf.d),配置文件是应用程序的“参数表”,修改后需重启程序生效。
4.日志文件:存放于/var/log,记录程序运行状态、错误信息、访问记录等,如
/var/log/nginx/access.log、/var/log/messages,是问题排査的核心依据。
5.参考文档/数据文件:存放于/usr/share/doc/,包含程序的安装说明、使用手册、更新日志等,
如/usr/share/doc/nginx/.
6.man 手册页:存放于/usr/share/man/,是程序的在线帮助文档,通过 man 命令/程序名可快速
查询使用方法,如man nginx、man rpm。
2.Linux软件包的四大封装类型及核心特性
Linux 的开源生态决定了软件包的多样化封装形式,不同封装类型适配不同的发行版和使用场景,核心分为二进制包(免编译)和源代码包(需编译)两大类,其中二进制包是日常使用的主流,源代码包适用于定制化需求。四大封装类型的详细特性、适用系统、管理工具如下表,是选择软件安装方式的核心依据:
| 封装类型 | 文件后缀 | 核心特性 | 适用 Linux 发行 | 核心管理工具 | 优势 | 劣势 |
| RPM 包 | *.rpm | 预编译二进包,RPM,系标准格式 | RHEL、Centos openEuler openSusE |
rpm、yum、DNF | 免编译,安装速度快;版本标准化;包管理器自动解决依赖 | 版本可能滞后;功能定制性差;仅适用于 RPM 系发行版 |
| DEB 包 | *.deb | 预编译二进包Debian系标准格式 | Ubuntu、 Debian、Linux Mint | dpkg、 apt | 免编译,安装速度快;依赖管理严格;Ubuntu 生态软件丰富 | 仅适用于 Debian系发行版:跨发行版兼容性差 |
| 源代码包(TarBal1) | .tar.gz/.tar.bz2 | 软件原始代码,未编译 | 所有 Linux 发行版(通用) | gcc,make、./conf igure |
版本最新;可按需定制功能;跨发行版兼容 | 需安装编译环境;安装步骤繁琐;需手动解决依赖 |
| 自包含安装程序 | .bin/.sh /install .sh |
预编译+依赖封装,独立安装包 | 所有 Linux 发行版(通用) | chmod +x执行安装脚本 | 免编译,自带依赖;安装向导化;跨发行版兼容 | 安装目录不规范;难以通过系统包管理器管理;卸载繁锁 |
二 RPM软件包管理工具
1.RPM概述
RPM(Red Hat Package Manager,后更名为RPM Package Manager)是 Linux 二进制包管理的开山鼻祖,由 Red Hat 于 1997 年首创,是 openEuler、RHEL 等RPM 系发行版的核心包管理机制,其数据库驱动的事务性管理和依赖解析引擎奠定了 Linux 二进制包管理的行业标准。openEuler 24.83 深度兼容 RPM包管理体系,同时对其依赖解析和事务管理做了优化,提升了在鹏等架构上的兼容性。
1)RPM 的核心优势
- 全生命周期管理:通过系统级数据库(/var/lib/rpm/)跟踪软件包的安装、升级、卸载,记录每个软件包的文件列表、依赖关系、版本信息,确保系统软件状态可追溯;
- 自动依赖解析:能自动计算软件包间的依赖链,提示缺失的依赖包,避免因依赖缺失导致程序无法运行,openEuler 24.83 对鲲鹏架构的依赖解析做了专项优化;
- 标准化命名:所有 RPM 包遵循统一的命名规范,通过文件名即可获取软件的完整信息,便于识别和管理;
- 事务性操作:安装/升级/卸载操作作为一个“事务”执行,若过程中出现错误(如磁盘空间不足、依赖缺失),会自动回滚,保证系统状态一致性。
2)RPM 包的标准化命名规范
RPM 包的文件名是结构化的信息载体,严格遵循以下格式,无任何例外,掌握该规范能快速识别软件的核心信息:
软件名-版本号-发布次数.操作系统版本.硬件架构.rpm
2.RPM命令的全流程(核心重点)
1)rpm 命令的基本格式
rpm 命令的核心是选项驱动,不同功能对应不同的核心选项,基本格式为:
rpm[核心选项][子选项][参数]
核心功能与对应核心选项:
- 查询/验证:-q(查询)、-V(验证)
- 安装/升级:-i(安装)、-U(升级,未安装则直接安装)、-F(更新,未安装则放弃)
- 卸载:-e(卸载)
执行 man rpm 可查看完整的选项说明,建议日常使用中逐步记忆核心选项。
2)查询 RPM 软件包信息(最常用功能,重点掌握)
查询是 rpm 命令最常用的功能,分为査询已安装的软件包和査询未安装的 RPM 包文件两类,核心选项分别为-g(已安装)和-gp(未安装),搭配子选项实现精准査询,所有查询操作均无需依赖网络。openEuler24.03 对 rpm 查询命令做了性能优化,大幅提升了海量包的査询速度。
(1)查询已安装的RPM 软件包(核心:rpm -q +子选项)
| 命令组合 | 功能说明 | 实战案例 | 输出效果 |
| rpm -q 软件名 | 查询指定软件是否己安装 | rpm -q wget | 已安装:输出包名;未安装: 提示“未安装软件包 wget” |
| rpm -qa | 列出系统中所有己安装的 RPM 软件 | rpm -qa | 逐行输出所有包名,数量可达数千 |
| rpm -qa | grep -i 关键词 | 模糊查询含指定关键词的软件包(-i忽略大小写) | rpm -qa | grep -i python3 | 列出所有名称含 python3 的已安装包 |
| rpm -qi 软件名 | 查看指定软件的详细信息(版本、发布时间、用途、许可证等) | rpm -qi firewalld | 输出软件的完整元信息,包括安装时间、开发者、功能描述 |
| rpm -ql 软件名 | 列出指定软件安装的所有文件和目录 | rpm -ql nginx | 逐行输出该软件的所有文件路径,对应 3.1.2 的文件构成 |
| rpm -qf 文件/目录路径 | 查看指定文件/日录由哪个软件包安装(反向查询) | rpm -qf /usr/bin/nginx | 输出该文件所属的软件包名 |
(2)查询未安装的 RPM 包文件(核心:rpm -qp + 子选项)
适用于在安装前査看 RPM 包文件的信息,避免安装错误,参数为RPM 包的完整文件路径(非软件名),常用子选项与已安装査询一致,核心为-gpi(查详细信息)、-gpl(查包内文件)。
3)安装、升级、卸载 RPM 软件包(实操重点)
该操作是 RPM 包管理的核心应用,openEuler 24.03 完整支持rpm 的安装、升级、卸载功能,需注意依赖关系和参数格式:安装/升级的参数为 RPM 包完整路径,卸载的参数为软件名;若存在依赖缺失,系统会直接报错,需先安装依赖包。
(1)核心选项说明
| 核心选项 | 功能 | 常用组合选项 | 适用场景 |
| -i | 安装新的 RPM 包 | -ivh | 全新安装,查看安装进度和详细信息 |
| -U | 升级指定软件包,未安装则直接安装 | -Uvh | 软件版本更新,兼容全新安装 |
| -F | 更新指定软件包,未安装则放弃 | -Fvh | 仅对己安装软件进行版本更新 |
| -e | 卸载指定软件包 | -e | 移除已安装的软件,仅需软件名 |
| 子选项-h | 以“#”显示安装/升级进度 | 搭配-i/-U/-F | 直观查看安装过程 |
| 子选项-v | 显示安装/升级的详细信息 | 搭配-i/-U/-F | 排查安装错误 |
| --force | 强制安装 | -ivh --force | 替换已安装的同版本包/安装旧版本包 |
| --nodeps | 忽略依赖关系 | -ivh --nodeps / -e --nodeps | 强制安装/卸载,忽略依赖检查 |
(2)安装RPM 包(安装openEuler 24.03 光盘中的 wget 包)
挂载光盘

三 DNF 软件包管理器(RPM 系新一代工具,核心重点)
1.DNF 概述与工作机制
DNF(Dandified YM)是 YUM 的下一代升级版本,是 openEuler 24.83 的默认包管理器,基于 RPM 包管理机制,openEuler 24.83 对 DNF 做了深度优化,包括鲲鹏架构适配、镜像源智能选择、依赖解析效率提升等,解决了传统 YUM 的速度慢、依赖解析差、内存占用高等问题,是 openEuler 24.83 软件管理的首选工具。
1)DNF 的核心优势
1.自动化依赖解决:采用新一代依赖解析引擎,openEuler 24.83 针对鲲鹏和 x86 架构做了双架构
依赖优化,能快速构建复杂的依赖图,自动下载并安装所有缺失的依赖包,无需手动干预;
2.多仓库支持:可配置多个软件仓库(官方仓库、第三方仓库如 EPEL、openEuler 专属仓库),自
动从仓库中获取最新的软件包;
3.智能镜像源:openEuler 24.03 内置了专属的镜像源调度机制,可根据用户的地理位置和网络环
境自动选择最优的 openEuler 镜像服务器,大幅提升软件下载速度;
4.模块化管理:支持软件模块(Module),可快速切换软件的不同版本(如Python 3.9/3.11).openEuler 24.83 强化了模块的版本隔离能力,避免版本冲突;
5.命令简洁:保持与 YUM 完全兼容的命令格式,学习成本低,YUM 用户可无缝切换;
6.高效稳定:相比 YUM,占用内存更少、执行速度更快,支持并行下载,openEuler 24.03 优化了
DNF 的内存管理,适合大规模软件管理和云原生环境;
7.多架构兼容:完美支持 x86 64、aarch64等 openEuler 24.03 主流架构,自动匹配对应架构的
软件包。
2)DNF 的核心工作机制
DNE 的工作基于软件仓库和元数据,核心流程为“读取仓库配置 - 下载元数据 - 解析依赖 - 下载并安装软件包”,openEuler 24.83 对该流程做了轻量化优化,减少了磁盘和内存占用,具体机制如下:
(1)软件仓库(Repository)
软件仓库是 DNF 的软件来源,分为官方仓库(openEuler 24.03 自带,如 base、appstream、extras)和第三方仓库(如 EPEL、Nginx 官方仓库、openEuler 社区仓库),仓库的配置文件存放于
/etc/yum.repos.d/,文件后缀为.repo,该目录是 DNF 的核心配置目录,所有.repo 文件都会被 DNF自动识别。
(2)元数据(Metadata)
每个软件仓库都会提供元数据,包含仓库中所有软件包的名称、版本、依赖关系、文件列表、下载地址等信息,DNF 会定期下载并缓存元数据到本地(/var/cache/dnf/),openEuler 24.83 优化了元数据的压缩和缓存策略,避免每次操作都实时扫描仓库,大幅提升査询和安装速度,元数据默认有过期时间(如6 小时),过期后会自动更新。
(3)仓库配置文件解析(以openEuler-extras.repo 为例)
仓库配置文件采用段式配置,每个仓库对应一个[仓库名]段,包含多个配置项,核心配置项及说明如下,掌握后可自行配置第三方仓库,openEuler 24.83 的仓库配置支持更多架构相关变量:
2.DNF 命令全流程实操(与 YUM 兼容,重点掌握)
DNF 命令的格式简洁直观,完全兼容 YUM 命令,openEuler 24.03 完整支持所有 DNF 核心命令,核心格式为:
dnf「选项/子命令][软件包名]【参数]
DNF 的操作均依赖网络(从仓库下载软件包/元数据),若服务器无网络,可配置 openEuler 24.03 本地光盘仓库。以下为DNF 的最常用操作,是 openEuler 24.03 日常系统管理的高频命令,建议逐一实操并牢记。
1)软件包查询(核心:list/info/search)
| 命令 | 功能说明 |
| dnf list all | 列出所有已安装和仓库中可用的软件包 |
| dnf list 软件名 | 查看指定软件的安装状态和可用版本 |
| dnf list available | 仅列出仓库中可安装的未安装软件包 |
| dnf list updates | 列出系统中可升级的软件包 |
| dnf info 软件名 | 查看指定软件包的详细信息(版本、大小、用途、依赖等) |
| dnf search 关键词 | 搜索仓库中名称/描述含指定关键词的软件包 |
![]()
![]()
2)软件包安装(核心:dnf install)
DNF 安装软件的核心优势是自动解决依赖,只需指定软件名,DNF 会自动从 openEuler 仓库下载软件包及所有依赖包,无需手动处理,是最常用的操作之一。
核心命令:dnf insta1l「选项】软件名
- 选项-y:自动确认所有操作,无需手动输入y(适用于脚本/批量操作);
- 可同时安装多个软件,用空格分隔软件名。
![]()
3)软件包升级(核心:dnfupdate)
DNF 可快速升级单个软件、多个软件或整个系统的所有软件,自动解决升级过程中的依赖问题,openEuler24.03的 dnf update 命令支持跨架构的包升级校验,是系统维护的重要操作。
核心命令:
1.dnf update[选项]软件名:升级指定软件包;
2.dnf update[选项]:升级系统中所有可升级的软件包(系统更新);
3.选项-y:自动确认升级。
4)软件包卸载(核心:dnf remove)
DNF 卸载软件时,会自动检査并提示依赖的软件包,避免误卸载导致系统功能异常,openEuler 24.83强化了 dnf remove 的依赖校验,防止误删系统核心包,卸载后会自动释放磁盘空间。
核心命令:dnf remove[选项]软件名
- 选项-y:自动确认卸载;
- 可同时卸载多个软件,用空格分隔。
![]()
5)DNF 其他常用命令
| 命令 | 功能说明 |
| dnf clean all | 清理 DNF 的缓存(元数据+下载的软件包),解决缓存损坏问题,openEuler 优化了缓存清理的速度 |
| dnf makecache | 手动生成元数据缓存,提升后续操作速度,支持多架构元数据缓存 |
| dnf repolist | 列出当前启用的所有软件仓库 |
| dnf repolist all | 列出当前启用的所有软件仓库 |
| dnf module list 软件名 | 查看软件的模块版本(如 Python、Node.js),openEuler 强化了模块的版本管理 |
| dnf check | 检查系统中存在的依赖问题,openEuler 新增了架构依赖校验 |
四 从源代码编译安装程序
编译安装的前提:安装开发环境
源代码编译需要编译器和构建工具,核心依赖为gcc(C/C++编译器)和 make(构建工具),此外,不同软件还需要对应的开发库(如 Nginx 需要 pcre-deve1、zlib-deve1),开发库的后缀通常为-devel,
表示开发用的头文件和库文件。

步骤 1:下载并解包源代码包(Tar 解包)
![]()
步骤 2:配置编译参数(./configure,核心定制步骤)
![]()
步骤 3:编译源代码(make,无定制,纯执行)
![]()
步骤 4:安装编译后的程序(make instal)
![]()
步骤5:验证安装并启动服务(实战验证)
![]()
![]()
验证 Nginx 是否启动:使用 ps -efgrep nginx 査看 Nginx 进程,若存在master process(主进程)和 worker process(工作进程),表示启动成功,openEuler 24.03 的ps 命令会显示进程的架构信息:
浏览器验证在客户端浏览器中输入 openEuler 24.03 服务器的 IP 地址(如 http://192.168.10.100),若看到Nginx 的欢迎页面,表示 Nginx 在 openEuler 24.03 上编译安装成功,可正常提供 Web 服务.
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)