Linux 服务器管理 · openEuler 24.03 环境
管理应用程序
3. 1Linux 应用程序基础
3.1.1 Linux 命令与应用程序的核心区别
在 Linux 系统中,命令与应用程序均为可执行的功能单元,但二者在设计初衷、存储位置、运行方式上存在本质差异,日常使用中可通过以下维度精准区分,避免概念混淆:
|
对比维度 |
Linux 命令 |
Linux 应用程序 |
|
执行文件大小 |
体积小巧,多为轻量级可执行文件 |
体积通常更大,包含完整功能模块 |
|
存储目录 |
核心命令:/bin、/sbin;内部命令集成于 Bash |
普通程序:/usr/bin、/usr/local/bin;服务程序:/usr/sbin、/usr/local/sbin |
|
安装时机 |
随操作系统默认安装,为系统基础组件 |
操作系统安装后,根据需求另行安装 |
|
功能定位 |
辅助系统管理,实现基础操作(如 ls、cd、rm) |
提供独立业务功能,等同于“软件”(如 Nginx、MySQL、Python) |
|
执行格式 |
固定遵循“命令字 + 选项 + 参数”标准格式 |
无固定格式,由开发者定义(可带图形界面/命令行/脚本启动) |
|
运行界面 |
仅支持字符操作界面(CLI) |
支持 CLI、图形界面(GUI)等多种形式 |
关键说明:部分应用程序会提供符合命令格式的可执行文件(如 nginx、docker),这类文件也被称为“程序命令”,是二者的交叉类型,也是日常系统管理中最常用的形式。
本章中所指的应用程序,是软件包安装后生成的有机整体,包含可执行文件、配置文件、日志文件、帮助文档等全部相关文件,因此“安装软件包”与“安装应用程序”在实际使用中无需严格区分。
3.1.2 Linux 应用程序的系统文件构成
Linux 遵循 FHS(文件系统层次结构标准),openEuler 24.03 也严格遵循该标准,将应用程序的不同类型文件分散存储在指定目录,实现文件分类管理,便于系统识别和用户维护。所有应用程序的文件存储均遵循统一规范,典型组成部分及存储目录如下,是 Linux 系统的核心设计原则,必须牢记:
- 普通可执行程序文件:存放于 /usr/bin,所有普通用户均可执行,如 python3、nginx、tree 等日常使用的程序。
- 服务器/管理程序文件:存放于 /usr/sbin,仅 root 管理员可执行,多为系统服务、管理工具,如 firewalld、networkctl。
- 配置文件:核心目录 /etc,若配置文件较多,会在 /etc 下创建专属子目录(如 /etc/nginx、/etc/my.cnf.d),配置文件是应用程序的“参数表”,修改后需重启程序生效。
- 日志文件:存放于 /var/log,记录程序运行状态、错误信息、访问记录等,如 /var/log/nginx/access.log、/var/log/messages,是问题排查的核心依据。
- 参考文档/数据文件:存放于 /usr/share/doc/,包含程序的安装说明、使用手册、更新日志等,如 /usr/share/doc/nginx/。
- man 手册页:存放于 /usr/share/man/,是程序的在线帮助文档,通过 man 命令/程序名可快速查询使用方法,如 man nginx、man rpm。
3.1.3 Linux 软件包的四大封装类型及核心特性
Linux 的开源生态决定了软件包的多样化封装形式,不同封装类型适配不同的发行版和使用场景,核心分为二进制包(免编译)和源代码包(需编译)两大类,其中二进制包是日常使用的主流,源代码包适用于定制化需求。四大封装类型的详细特性、适用系统、管理工具如下表,是选择软件安装方式的核心依据:
|
封装类型 |
文件后缀 |
核心特性 |
适用发行版 |
核心管理工具 |
优势 |
劣势 |
|
RPM 包 |
*.rpm |
预编译二进制包,RPM 系标准格式 |
RHEL、CentOS、openEuler、openSUSE |
rpm、yum、DNF |
免编译,安装速度快;版本标准化;包管理器自动解决依赖 |
版本可能滞后;功能定制性差;仅适用于 RPM 系发行版 |
|
DEB 包 |
*.deb |
预编译二进制包,Debian 系标准格式 |
Ubuntu、Debian、Linux Mint |
dpkg、apt |
免编译,安装速度快;依赖管理严格;Ubuntu 生态软件丰富 |
仅适用于 Debian 系发行版;跨发行版兼容性差 |
|
源代码包(TarBall) |
.tar.gz/.tar.bz2 |
软件原始代码,未编译 |
所有 Linux 发行版(通用) |
gcc、make、./configure |
版本最新;可按需定制功能;跨发行版兼容 |
需安装编译环境;安装步骤繁琐;需手动解决依赖 |
|
自包含安装程序 |
.bin/.sh/install.sh |
预编译+依赖封装,独立安装包 |
所有 Linux 发行版(通用) |
chmod +x 执行安装脚本 |
免编译,自带依赖;安装向导化;跨发行版兼容 |
安装目录不规范;难以通过系统包管理器管理;卸载繁琐 |
3.2 RPM 软件包管理工具
3.2.1 RPM 概述
RPM(Red Hat Package Manager,后更名为 RPM Package Manager)是 Linux 二进制包管理的开山鼻祖,由 Red Hat 于 1997 年首创,是 openEuler、RHEL 等 RPM 系发行版的核心包管理机制,其数据库驱动的事务性管理和依赖解析引擎奠定了 Linux 二进制包管理的行业标准。openEuler 24.03 深度兼容 RPM 包管理体系,同时对其依赖解析和事务管理做了优化,提升了在鲲鹏等架构上的兼容性。
1.RPM 的核心优势:
- 全生命周期管理:通过系统级数据库(/var/lib/rpm/)跟踪软件包的安装、升级、卸载,记录每个软件包的文件列表、依赖关系、版本信息,确保系统软件状态可追溯。
- 自动依赖解析:能自动计算软件包间的依赖链,提示缺失的依赖包,避免因依赖缺失导致程序无法运行,openEuler 24.03 对鲲鹏架构的依赖解析做了专项优化。
- 标准化命名:所有 RPM 包遵循统一的命名规范,通过文件名即可获取软件的完整信息,便于识别和管理。
- 事务性操作:安装/升级/卸载操作作为一个“事务”执行,若过程中出现错误(如磁盘空间不足、依赖缺失),会自动回滚,保证系统状态一致性。
2.RPM 包标准化命名规范
- 软件名(lynx):软件项目的核心名称,对应程序功能,是查询/卸载软件时的核心标识。
- 版本号(2.8.9):遵循主版本号.次版本号.修订号三级规范,主版本号大升级表示功能重大变更,次版本号表示功能新增,修订号表示 Bug 修复。
- 发布次数(20):该版本在对应发行版中的官方构建次数,数字越大表示打包维护越新。
- 操作系统版本(oe2403):oe 代表 openEuler,2403 表示适用于 openEuler 24.03 及兼容版本。
- 硬件架构(x86_64):表示软件适配的 CPU 架构,openEuler 24.03 重点支持 x86_64、aarch64(鲲鹏)等架构,noarch 为跨架构(纯脚本/配置文件)。
3.2.2 rpm 命令全流程实操(核心重点)
rpm 命令是 RPM 包管理的原生工具,openEuler 24.03 完整支持该命令的所有功能,能实现对 RPM 包的查询、安装、升级、卸载、验证等所有操作,命令格式灵活,通过不同选项组合实现不同功能,是 Linux 系统管理员的必备基础命令。
1.rpm命令的基本格式
rpm 命令的核心是选项驱动,不同功能对应不同的核心选项,基本格式为:
rpm [核心选项] [子选项] [参数]
核心功能与对应核心选项:
- 查询/验证:-q(查询)、-V(验证)。
- 安装/升级:-i(安装)、-U(升级,未安装则直接安装)、-F(更新,未安装则放弃)。
- 卸载:-e(卸载)。
执行 man rpm 可查看完整的选项说明,建议日常使用中逐步记忆核心选项。
2. 查询 RPM 软件包信息(最常用功能)
查询是 rpm 命令最常用的功能,分为查询已安装的软件包和查询未安装的 RPM 包文件两类,核心选项分别为 -q(已安装)和 -qp(未安装),搭配子选项实现精准查询,所有查询操作均无需依赖网络。openEuler 24.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 |
逐行输出该软件的所有文件路径,对应 2.2 的文件构成 |
|
rpm -qf 文件/目录路径 |
查看指定文件/目录由哪个软件包安装(反向查询) |
rpm -qf /usr/bin/nginx |
输出该文件所属的软件包名 |
核心注意:rpm 命令仅能查询通过 RPM 方式安装的软件,对于源码编译、手动复制的软件,无法获取任何信息,这是 RPM 包管理的边界。
(2)查询未安装的 RPM 包文件(核心:rpm -qp + 子选项)
适用于在安装前查看 RPM 包文件的信息,避免安装错误,参数为 RPM 包的完整文件路径(非软件名),常用子选项与已安装查询一致,核心为 -qpi(查详细信息)、-qpl(查包内文件)。
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 |
强制安装/卸载,忽略依赖检查 |
重要警告:--force 和 --nodeps 为强制操作选项,仅适用于学习/调试场景!生产环境中严禁使用,忽略依赖会导致软件功能异常、系统稳定性受损,甚至系统崩溃,openEuler 24.03 的系统校验机制会对强制操作做额外风险提示。
3.3 DNF 软件包管理器(RPM 系新一代工具,核心重点)
3.3.1 DNF 概述与核心优势
DNF(Dandified YUM)是 YUM 的下一代升级版本,是 openEuler 24.03 的默认包管理器,基于 RPM 包管理机制,openEuler 24.03 对 DNF 做了深度优化,包括鲲鹏架构适配、镜像源智能选择、依赖解析效率提升等,解决了传统 YUM 的速度慢、依赖解析差、内存占用高等问题,是 openEuler 24.03 软件管理的首选工具。
1.DNF 的核心优势:
- 自动化依赖解决:采用新一代依赖解析引擎,openEuler 24.03 针对鲲鹏和 x86 架构做了双架构依赖优化,能快速构建复杂的依赖图,自动下载并安装所有缺失的依赖包,无需手动干预。
- 多仓库支持:可配置多个软件仓库(官方仓库、第三方仓库如 EPEL、openEuler 专属仓库),自动从仓库中获取最新的软件包。
- 智能镜像源:openEuler 24.03 内置了专属的镜像源调度机制,可根据用户的地理位置和网络环境自动选择最优的 openEuler 镜像服务器,大幅提升软件下载速度。
- 模块化管理:支持软件模块(Module),可快速切换软件的不同版本(如 Python 3.9/3.11),openEuler 24.03 强化了模块的版本隔离能力,避免版本冲突。
- 命令简洁:保持与 YUM 完全兼容的命令格式,学习成本低,YUM 用户可无缝切换。
- 高效稳定:相比 YUM,占用内存更少、执行速度更快,支持并行下载,openEuler 24.03 优化了 DNF 的内存管理,适合大规模软件管理和云原生环境。
- 多架构兼容:完美支持 x86_64、aarch64 等 openEuler 24.03 主流架构,自动匹配对应架构的软件包。
2 核心工作机制
DNF 的工作基于软件仓库和元数据,核心流程为“读取仓库配置 → 下载元数据 → 解析依赖 → 下载并安装软件包”,openEuler 24.03 对该流程做了轻量化优化,减少了磁盘和内存占用。
(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.03 优化了元数据的压缩和缓存策略,避免每次操作都实时扫描仓库,大幅提升查询和安装速度,元数据默认有过期时间(如 6 小时),过期后会自动更新。
3.3.2 DNF 命令全流程实操(与 YUM 兼容,重点掌握)
DNF 命令的格式简洁直观,完全兼容 YUM 命令,openEuler 24.03 完整支持所有 DNF 核心命令,核心格式为:
dnf [选项/子命令] [软件包名] [参数]
DNF 的操作均依赖网络(从仓库下载软件包/元数据),若服务器无网络,可配置 openEuler 24.03 本地光盘仓库。以下为 DNF 的最常用操作,是 openEuler 24.03 日常系统管理的高频命令,建议逐一实操并牢记。
1.软件包查询(核心:list/info/search)
查询是 DNF 的基础功能,可快速查看仓库中可用的软件包、已安装的软件包、软件包详细信息等,无需记住复杂选项,openEuler 24.03 优化了查询命令的响应速度。
|
命令 |
功能说明 |
实战案例 |
|
dnf list all |
列出所有已安装和仓库中可用的软件包 |
dnf list all |
|
dnf list 软件名 |
查看指定软件的安装状态和可用版本 |
dnf list nginx |
|
dnf list available |
仅列出仓库中可安装的未安装软件包 |
dnf list available |
|
dnf list updates |
列出系统中可升级的软件包 |
dnf list updates |
|
dnf info 软件名 |
查看指定软件包的详细信息(版本、大小、用途、依赖等) |
dnf info tree |
|
dnf search 关键词 |
搜索仓库中名称/描述含指定关键词的软件包 |
dnf search web server |
2.软件包安装(核心:dnf install)
DNF 安装软件的核心优势是自动解决依赖,只需指定软件名,DNF 会自动从 openEuler 仓库下载软件包及所有依赖包,无需手动处理,是最常用的操作之一。
- 核心命令:dnf install [选项] 软件名。
- 选项 -y:自动确认所有操作,无需手动输入 y(适用于脚本/批量操作)。
- 可同时安装多个软件,用空格分隔软件名。
3. 软件包升级(核心:dnf update)
DNF 可快速升级单个软件、多个软件或整个系统的所有软件,自动解决升级过程中的依赖问题,openEuler 24.03 的dnf update 命令支持跨架构的包升级校验,是系统维护的重要操作。
- dnf update [选项] 软件名:升级指定软件包。
- dnf update [选项]:升级系统中所有可升级的软件包(系统更新)。
- 选项 -y:自动确认升级。
4. 软件包卸载(核心:dnf remove)
DNF 卸载软件时,会自动检查并提示依赖的软件包,避免误卸载导致系统功能异常,openEuler 24.03 强化了 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 新增了架构依赖校验 |
3.4 从源代码编译安装程序(定制化安装,核心实操)
3.4.1源代码编译安装概述
源代码包(TarBall)是开源软件的原始发布形式,以 .tar.gz/.tar.bz2 为后缀的压缩包,包含软件的所有原始代码(C/C++/Python 等),需通过编译转换为系统可识别的二进制可执行文件后才能运行。openEuler 24.03 作为企业级 Linux 发行版,完美支持源代码编译安装,同时对鲲鹏、x86 等架构做了编译优化,提供了更完善的开发工具链。
与 RPM/DNF 的二进制安装相比,源代码编译安装的核心价值在于定制化,是搭建企业级服务(如 Nginx、MySQL、Redis)的常用方式,适用于以下场景:
- 需要软件的最新版本:开源软件通常先发布源代码包,二进制包(RPM/DEB)会滞后数周/数月,编译安装可快速获取最新功能和安全补丁。
- 需要定制软件功能:二进制包仅包含软件的基础功能,编译安装时可通过配置选项开启/关闭特定功能(如 Nginx 开启 SSL、HTTP/2 模块),满足企业个性化需求。
- 需要适配特殊系统环境:openEuler 24.03 广泛应用于鲲鹏服务器、云原生环境等特殊场景,部分二进制包无法适配,编译安装可根据硬件架构优化编译参数,提升程序性能。
- 需要修改软件源代码:企业可根据自身需求修改开源软件的源代码,添加自定义功能,修改后需重新编译安装才能生效。
- 适配 openEuler 专属架构:针对 openEuler 24.03 支持的鲲鹏(aarch64)等架构,部分软件无官方二进制包,编译安装是最优选择。
1.编译安装的前提:安装开发环境
源代码编译需要编译器和构建工具,核心依赖为 gcc(C/C++ 编译器)和 make(构建工具),此外,不同软件还需要对应的开发库(如 Nginx 需要 pcre-devel、zlib-devel),开发库的后缀通常为 -devel,表示开发用的头文件和库文件。openEuler 24.03 的官方仓库提供了完整的开发工具链,同时对鲲鹏架构的编译工具做了专项优化。
3.4.2 源代码编译安装的标准流程(四步核心,通用所有开源软件)
所有开源软件的源代码编译安装都遵循统一的标准流程:解包 → 配置 → 编译 → 安装,简称为 ./configure → make → make install,仅部分软件会有细微差异,具体需参考软件包内的 INSTALL 或 README 文档(必看!)。openEuler 24.03 对该流程的兼容性做了全面优化,支持 x86_64、aarch64 等架构的编译。本文以 Nginx 1.26.2(高性能 Web 服务器)为例,完成从源代码下载到服务启动的完整实战,该流程可直接复用至其他开源软件(如 Redis、MySQL、Apache)。
步骤 1:下载并解包源代码包(Tar 解包)
(1)下载源代码包
优先从软件官方网站下载源代码包,保证包的完整性和安全性,Nginx 官方下载地址:http://nginx.org/download/,在 openEuler 24.03 中使用 wget 命令直接下载:
# 下载 Nginx 1.26.2 源代码包
wget http://nginx.org/download/nginx-1.26.2.tar.gz
--2025-03-23 19:00:00-- http://nginx.org/download/nginx-1.26.2.tar.gz
Resolving nginx.org (nginx.org)... 3.125.197.172
Connecting to nginx.org (nginx.org)|3.125.197.172|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1244789 (1.2M) [application/octet-stream]
Saving to: 'nginx-1.26.2.tar.gz'
nginx-1.26.2.tar.gz 100%[===================>] 1.19M 1.32MB/s in 0.9s
(2)解包源代码包
源代码包为 tar 压缩包,使用 tar 命令解包,核心选项:-z(解 .gz 包)、-x(解包)、-v(显示详细信息)、-f(指定包文件),解包后会生成一个同名的源代码目录:
# 解包 Nginx 源代码包
tar -zxvf nginx-1.26.2.tar.gz
# 解包完成后,查看生成的目录
ls
nginx-1.26.2 nginx-1.26.2.tar.gz
2.步骤 2:配置编译参数(./configure,核心定制步骤)
解包后进入源代码目录,执行 ./configure 脚本进行编译配置,这是定制化的核心步骤,通过配置选项指定软件的安装目录、启用/禁用功能模块、依赖库路径等。openEuler 24.03 的 ./configure 脚本支持自动识别系统架构,若配置失败,会直接提示缺失的依赖,需安装后重新配置。
# (1)进入源代码目录
cd nginx-1.26.2
# (2)执行 ./configure 配置,指定核心参数
Nginx 的核心配置选项为 --prefix(指定安装目录),其他选项为功能模块,本次配置开启 SSL 模块(HTTPS 支持)和 HTTP/2 模块(高性能网络协议),同时适配 openEuler 24.03 的系统环境,这是企业级 Nginx 的基础配置:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
参数解析:
- --prefix=/usr/local/nginx:指定 Nginx 的安装目录为 /usr/local/nginx,所有文件都会安装到该目录,便于管理和卸载,符合 openEuler 的文件目录规范。
- --with-http_ssl_module:启用 SSL 模块,支持 HTTPS 协议,需提前安装 openssl-devel,openEuler 24.03 的 openssl-devel 为 3.0 版本,完美兼容 Nginx。
- --with-http_v2_module:启用 HTTP/2 模块,提升 Web 服务的传输速度,需提前安装 pcre-devel 和 zlib-devel。
鲲鹏架构(aarch64)额外配置:若在 openEuler 24.03 鲲鹏服务器上编译,需添加架构指定参数,自动适配鲲鹏 CPU:
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --build=aarch64-unknown-linux-gnu
(3)配置成功的标志
若配置过程中无错误提示,最后会输出 Configuration summary,表示配置成功,生成了 Makefile(编译脚本,为下一步 make 做准备),openEuler 24.03 会在输出中显示当前系统架构:
Configuration summary
+ using system PCRE library
+ using system zlib library
+ using system OpenSSL library
+ nginx path prefix: "/usr/local/nginx"
+ nginx binary file: "/usr/local/nginx/sbin/nginx"
+ nginx configuration prefix: "/usr/local/nginx/conf"
+ nginx error log path: "/usr/local/nginx/logs/error.log"
+ nginx http access log path: "/usr/local/nginx/logs/access.log"
+ nginx pid file: "/usr/local/nginx/logs/nginx.pid"
+ build platform: x86_64-unknown-linux-gnu # openEuler 24.03 x86 架构
# 鲲鹏架构显示: build platform: aarch64-unknown-linux-gnu
配置失败的解决:若配置失败,会提示“error: xxx not found”,如“error: SSL modules require the OpenSSL library”,表示缺失 openssl-devel,在 openEuler 24.03 中通过 dnf 安装对应依赖后重新执行 ./configure 即可。
3. 步骤 3:编译源代码(make,无定制,纯执行)
配置成功后,执行 make 命令进行编译,make 会根据生成的 Makefile 脚本,调用 gcc 编译器将源代码转换为二进制可执行文件。openEuler 24.03 的 gcc 编译器做了编译优化,支持多核并行编译,可通过 -j 参数指定编译核心数,提升编译速度(Nginx 编译仅需数秒)。
make # 基础编译,单核心
make -j 4 # 多核并行编译(推荐),指定 4 个核心,根据服务器 CPU 调整
编译成功的标志:无 error、warning 可忽略,最后回到命令行提示符,无报错信息。
4. 步骤 4:安装编译后的程序(make install)
编译成功后,执行 make install 命令,将编译好的二进制文件、配置文件、帮助文档等复制到 ./configure 指定的安装目录(/usr/local/nginx),完成最终的安装。openEuler 24.03 会自动为安装的程序添加执行权限,无需手动配置。
make install
# 安装过程输出少量信息,无报错表示安装成功
5. 步骤5:验证安装并启动服务(实战验证)
安装完成后,所有 Nginx 的文件都在 /usr/local/nginx 目录中,核心目录遵循 openEuler 的文件规范:
- sbin/:可执行文件目录,nginx 为核心启动程序。
- conf/:配置文件目录,nginx.conf 为核心配置文件。
- logs/:日志文件目录,error.log 和 access.log 为核心日志。
(1)启动 Nginx 服务
# 进入 Nginx 的 sbin 目录,执行 nginx 启动程序
cd /usr/local/nginx/sbin
./nginx # 启动 Nginx,无输出表示启动成功
(2)验证 Nginx 是否启动
使用 ps -ef | grep nginx 查看 Nginx 进程,若存在 master process(主进程)和 worker process(工作进程),表示启动成功:
ps -ef | grep nginx
root 44020 1 0 19:10 ? 00:00:00 nginx: master process ./nginx
nobody 44021 44020 0 19:10 ? 00:00:00 nginx: worker process
(3)浏览器验证
在客户端浏览器中输入 openEuler 24.03 服务器的 IP 地址(如 http://192.168.253.129),若看到 Nginx 的欢迎页面,表示 Nginx 在 openEuler 24.03 上编译安装成功,可正常提供 Web 服务。
源代码编译安装的核心优势与卸载方法
(1)核心优势
- 定制化:可根据需求开启/关闭功能模块,优化软件性能,适配 openEuler 24.03 的系统特性。
- 最新版本:快速获取软件的最新功能和安全补丁,弥补 openEuler 官方仓库包版本滞后的问题。
- 独立目录:所有文件都在指定的安装目录,便于管理和迁移,符合 openEuler 的文件管理规范。
- 跨架构兼容:可在 openEuler 24.03 的 x86_64、aarch64 等架构上编译,适配不同硬件环境。
- 深度优化:可针对 openEuler 的系统内核和硬件架构做编译优化,提升程序运行效率。
(2)卸载方法
源代码编译安装的软件无官方卸载命令,由于所有文件都在 --prefix 指定的安装目录,直接删除该目录即可完成卸载,无残留,这是 --prefix 参数的核心价值,在 openEuler 24.03 中该方法安全无副作用:
# 卸载 Nginx,直接删除安装目录
rm -rf /usr/local/nginx
3.5 三种应用程序管理方式的对比与场景选择
本章讲解了 Linux 应用程序的三种核心管理方式:RPM 原生命令、DNF 包管理器、源代码编译安装,openEuler 24.03 完整支持这三种方式,并针对不同方式做了专属优化,三者各有优劣,适用于不同的场景,掌握其对比关系能快速选择最优的管理方案,这是 openEuler 24.03 系统管理的核心决策能力。
|
对比维度 |
RPM 原生命令 |
DNF 包管理器 |
源代码编译安装 |
|
核心工具 |
rpm |
dnf |
./configure、make、make install |
|
安装速度 |
快(免编译) |
快(免编译) |
慢(需编译) |
|
依赖处理 |
手动处理,需自行安装依赖 |
自动解决,无需手动干预 |
手动处理,需安装编译依赖和开发库 |
|
功能定制性 |
无,仅能安装默认功能 |
低,仅能安装仓库中预设的功能 |
高,可按需开启/关闭功能模块、修改源代码 |
|
软件版本 |
标准化,版本较稳定 |
openEuler 官方仓库版本,略滞后于最新版 |
最新版本,可获取最新功能和安全补丁 |
|
管理难度 |
中等,需处理依赖 |
低,命令简洁,自动化程度高 |
高,需掌握编译环境和配置选项 |
|
openEuler 24.03 适配性 |
完美支持,优化了鲲鹏架构依赖解析、提升海量包查询速度 |
深度优化,支持 x86_64/aarch64 多架构、智能镜像源调度、模块化版本隔离 |
完美支持,提供 gcc 12.2 完善开发工具链,适配 x86_64/aarch64 鲲鹏架构,支持多核并行编译 |
|
适用场景 |
无网络环境的本地安装;单软件快速安装/卸载;离线服务器部署;跨架构包验证 |
openEuler 24.03 日常系统管理;标准化服务部署;快速安装/升级/卸载软件;有网络环境的服务器;云原生环境;企业级标准化部署 |
企业级定制化服务部署;需要软件最新版本;鲲鹏架构专属适配;修改源代码定制功能;特殊系统环境适配 |
核心选择原则
- 日常使用/标准化部署:优先选择 DNF,自动化程度高,管理难度低,是 openEuler 24.03 的默认选择,适配绝大多数生产和运维场景,能充分利用 openEuler 的智能镜像源和自动依赖解决能力。
- 无网络/离线环境:选择 RPM 本地安装,需提前从 openEuler 官方镜像站下载好所有依赖包,适合机房隔离、无外网的服务器部署。
- 企业级定制化/鲲鹏架构适配:选择源代码编译安装,可针对 openEuler 24.03 的内核特性和鲲鹏硬件架构做编译优化,开启专属功能模块,满足个性化业务需求,是搭建 Nginx、MySQL、Redis 等企业级定制服务的首选。
本章核心要点速记
- Linux 应用程序与命令的核心区别在于存储目录、安装时机和功能定位,openEuler 24.03 严格遵循 FHS 标准,应用程序文件分散存储在 /usr/bin、/etc、/var/log 等指定目录,保证系统文件管理的规范性。
- Linux 软件包分为四大封装类型,RPM 包是 openEuler 24.03 等 RPM 系发行版的标准格式,遵循“软件名-版本号-发布次数.oe2403.硬件架构.rpm”的标准化命名规范,通过文件名可直接获取软件完整信息,同时适配 x86_64 和 aarch64 鲲鹏架构。
- rpm 命令是 RPM 包的原生管理工具,openEuler 24.03 对其做了性能和架构优化,核心功能为查询(-q/-qp)、安装(-i)、升级(-U)、卸载(-e),查询功能是日常系统运维的重点,仅能管理通过 RPM 方式安装的软件。
- DNF 是 openEuler 24.03 的默认包管理器,基于 RPM 机制做了深度优化,默认兼容 YUM 命令,核心优势是自动解决依赖、智能镜像源、多架构兼容、模块化管理,dnf install/remove/update 是日常使用的高频命令,是 openEuler 24.03 软件管理的首选方式。
- openEuler 24.03 提供了完善的开发工具链,支持开源软件从源代码编译安装,标准流程为解包 → 配置 → 编译 → 安装,核心是 ./configure 的定制化配置,--prefix 参数可指定安装目录,便于后续管理和卸载,同时支持鲲鹏架构的专属编译配置和多核并行编译。
- openEuler 24.03 下三种应用程序管理方式的选择核心是“场景+架构适配”:日常运维选 DNF,无网络离线环境选 RPM,企业级定制化部署、鲲鹏架构适配或需要软件最新版本时选源代码编译安装。
通过本章的学习和实操,可独立完成 openEuler 24.03 系统下应用程序的全流程管理,熟练掌握 RPM、DNF 和源代码编译三种方式的实操技巧,能根据实际场景和硬件架构选择最优的软件管理方案,为后续 openEuler 24.03 的企业级服务搭建(如 Web、数据库、缓存、云原生组件)奠定坚实的基础。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)