管理应用程序

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 系统的核心设计原则,必须牢记:

  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。

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 的核心优势:

  1. 全生命周期管理:通过系统级数据库(/var/lib/rpm/)跟踪软件包的安装、升级、卸载,记录每个软件包的文件列表、依赖关系、版本信息,确保系统软件状态可追溯。
  2. 自动依赖解析:能自动计算软件包间的依赖链,提示缺失的依赖包,避免因依赖缺失导致程序无法运行,openEuler 24.03 对鲲鹏架构的依赖解析做了专项优化。
  3. 标准化命名:所有 RPM 包遵循统一的命名规范,通过文件名即可获取软件的完整信息,便于识别和管理。
  4. 事务性操作:安装/升级/卸载操作作为一个“事务”执行,若过程中出现错误(如磁盘空间不足、依赖缺失),会自动回滚,保证系统状态一致性。

2.RPM 包标准化命名规范

  1. 软件名(lynx):软件项目的核心名称,对应程序功能,是查询/卸载软件时的核心标识。
  2. 版本号(2.8.9):遵循主版本号.次版本号.修订号三级规范,主版本号大升级表示功能重大变更,次版本号表示功能新增,修订号表示 Bug 修复。
  3. 发布次数(20):该版本在对应发行版中的官方构建次数,数字越大表示打包维护越新。
  4. 操作系统版本(oe2403):oe 代表 openEuler,2403 表示适用于 openEuler 24.03 及兼容版本。
  5. 硬件架构(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 [核心选项] [子选项] [参数]

核心功能与对应核心选项:

  1. 查询/验证:-q(查询)、-V(验证)。
  2. 安装/升级:-i(安装)、-U(升级,未安装则直接安装)、-F(更新,未安装则放弃)。
  3. 卸载:-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 的核心优势:

  1. 自动化依赖解决:采用新一代依赖解析引擎,openEuler 24.03 针对鲲鹏和 x86 架构做了双架构依赖优化,能快速构建复杂的依赖图,自动下载并安装所有缺失的依赖包,无需手动干预。
  2. 多仓库支持:可配置多个软件仓库(官方仓库、第三方仓库如 EPEL、openEuler 专属仓库),自动从仓库中获取最新的软件包。
  3. 智能镜像源:openEuler 24.03 内置了专属的镜像源调度机制,可根据用户的地理位置和网络环境自动选择最优的 openEuler 镜像服务器,大幅提升软件下载速度。
  4. 模块化管理:支持软件模块(Module),可快速切换软件的不同版本(如 Python 3.9/3.11),openEuler 24.03 强化了模块的版本隔离能力,避免版本冲突。
  5. 命令简洁:保持与 YUM 完全兼容的命令格式,学习成本低,YUM 用户可无缝切换。
  6. 高效稳定:相比 YUM,占用内存更少、执行速度更快,支持并行下载,openEuler 24.03 优化了 DNF 的内存管理,适合大规模软件管理和云原生环境。
  7. 多架构兼容:完美支持 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 仓库下载软件包及所有依赖包,无需手动处理,是最常用的操作之一。

  1. 核心命令:dnf install [选项] 软件名。
  2. 选项 -y:自动确认所有操作,无需手动输入 y(适用于脚本/批量操作)。
  3. 可同时安装多个软件,用空格分隔软件名。

3. 软件包升级(核心:dnf update)

DNF 可快速升级单个软件、多个软件或整个系统的所有软件,自动解决升级过程中的依赖问题,openEuler 24.03 的dnf update 命令支持跨架构的包升级校验,是系统维护的重要操作。

  1. dnf update [选项] 软件名:升级指定软件包。
  2. dnf update [选项]:升级系统中所有可升级的软件包(系统更新)。
  3. 选项 -y:自动确认升级。

4. 软件包卸载(核心:dnf remove)

DNF 卸载软件时,会自动检查并提示依赖的软件包,避免误卸载导致系统功能异常,openEuler 24.03 强化了 dnf remove 的依赖校验,防止误删系统核心包,卸载后会自动释放磁盘空间。

  1. 核心命令:dnf remove [选项] 软件名。
  2. 选项 -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)的常用方式,适用于以下场景:

  1. 需要软件的最新版本:开源软件通常先发布源代码包,二进制包(RPM/DEB)会滞后数周/数月,编译安装可快速获取最新功能和安全补丁。
  2. 需要定制软件功能:二进制包仅包含软件的基础功能,编译安装时可通过配置选项开启/关闭特定功能(如 Nginx 开启 SSL、HTTP/2 模块),满足企业个性化需求。
  3. 需要适配特殊系统环境:openEuler 24.03 广泛应用于鲲鹏服务器、云原生环境等特殊场景,部分二进制包无法适配,编译安装可根据硬件架构优化编译参数,提升程序性能。
  4. 需要修改软件源代码:企业可根据自身需求修改开源软件的源代码,添加自定义功能,修改后需重新编译安装才能生效。
  5. 适配 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

参数解析:

  1. --prefix=/usr/local/nginx:指定 Nginx 的安装目录为 /usr/local/nginx,所有文件都会安装到该目录,便于管理和卸载,符合 openEuler 的文件目录规范。
  2. --with-http_ssl_module:启用 SSL 模块,支持 HTTPS 协议,需提前安装 openssl-devel,openEuler 24.03 的 openssl-devel 为 3.0 版本,完美兼容 Nginx。
  3. --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 的文件规范:

  1. sbin/:可执行文件目录,nginx 为核心启动程序。
  2. conf/:配置文件目录,nginx.conf 为核心配置文件。
  3. 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)核心优势

  1. 定制化:可根据需求开启/关闭功能模块,优化软件性能,适配 openEuler 24.03 的系统特性。
  2. 最新版本:快速获取软件的最新功能和安全补丁,弥补 openEuler 官方仓库包版本滞后的问题。
  3. 独立目录:所有文件都在指定的安装目录,便于管理和迁移,符合 openEuler 的文件管理规范。
  4. 跨架构兼容:可在 openEuler 24.03 的 x86_64、aarch64 等架构上编译,适配不同硬件环境。
  5. 深度优化:可针对 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 日常系统管理;标准化服务部署;快速安装/升级/卸载软件;有网络环境的服务器;云原生环境;企业级标准化部署

企业级定制化服务部署;需要软件最新版本;鲲鹏架构专属适配;修改源代码定制功能;特殊系统环境适配

 核心选择原则

  1. 日常使用/标准化部署:优先选择 DNF,自动化程度高,管理难度低,是 openEuler 24.03 的默认选择,适配绝大多数生产和运维场景,能充分利用 openEuler 的智能镜像源和自动依赖解决能力。
  2. 无网络/离线环境:选择 RPM 本地安装,需提前从 openEuler 官方镜像站下载好所有依赖包,适合机房隔离、无外网的服务器部署。
  3. 企业级定制化/鲲鹏架构适配:选择源代码编译安装,可针对 openEuler 24.03 的内核特性和鲲鹏硬件架构做编译优化,开启专属功能模块,满足个性化业务需求,是搭建 Nginx、MySQL、Redis 等企业级定制服务的首选。

本章核心要点速记

  1. Linux 应用程序与命令的核心区别在于存储目录、安装时机和功能定位,openEuler 24.03 严格遵循 FHS 标准,应用程序文件分散存储在 /usr/bin、/etc、/var/log 等指定目录,保证系统文件管理的规范性。
  2. Linux 软件包分为四大封装类型,RPM 包是 openEuler 24.03 等 RPM 系发行版的标准格式,遵循“软件名-版本号-发布次数.oe2403.硬件架构.rpm”的标准化命名规范,通过文件名可直接获取软件完整信息,同时适配 x86_64 和 aarch64 鲲鹏架构。
  3. rpm 命令是 RPM 包的原生管理工具,openEuler 24.03 对其做了性能和架构优化,核心功能为查询(-q/-qp)、安装(-i)、升级(-U)、卸载(-e),查询功能是日常系统运维的重点,仅能管理通过 RPM 方式安装的软件。
  4. DNF 是 openEuler 24.03 的默认包管理器,基于 RPM 机制做了深度优化,默认兼容 YUM 命令,核心优势是自动解决依赖、智能镜像源、多架构兼容、模块化管理,dnf install/remove/update 是日常使用的高频命令,是 openEuler 24.03 软件管理的首选方式。
  5. openEuler 24.03 提供了完善的开发工具链,支持开源软件从源代码编译安装,标准流程为解包 → 配置 → 编译 → 安装,核心是 ./configure 的定制化配置,--prefix 参数可指定安装目录,便于后续管理和卸载,同时支持鲲鹏架构的专属编译配置和多核并行编译。
  6. openEuler 24.03 下三种应用程序管理方式的选择核心是“场景+架构适配”:日常运维选 DNF,无网络离线环境选 RPM,企业级定制化部署、鲲鹏架构适配或需要软件最新版本时选源代码编译安装。

通过本章的学习和实操,可独立完成 openEuler 24.03 系统下应用程序的全流程管理,熟练掌握 RPM、DNF 和源代码编译三种方式的实操技巧,能根据实际场景和硬件架构选择最优的软件管理方案,为后续 openEuler 24.03 的企业级服务搭建(如 Web、数据库、缓存、云原生组件)奠定坚实的基础。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐