Linux应用程序基础

1,Linux命令与应用程序的核心区别

对比维度

Linux命令

LInux应用程序

执行文件大小

体积小巧,多为轻量级可执行文件

体积通常更大,包含完整功能模块

存储目录

核心命令:/bin,/sbin:内部命令集成于Bash

普通程序:/usr/bin,/usr/local/bin

服务程序:/usr/sbin,/usr/local/sbin

安装时机

随操作系统默认安装,为系统基础组件

操作系统安装后,根据需求另行安装

功能定位

辅助系统管理,实现基础操作

提供独立业务功能,等同于“软件”

执行格式

固定遵循“你命令字+选项+参数”

无固定格式,由开发者定义

运行界面

仅支持字符操作界面(CLI)

支持CLI,图形界面(GUI)等

2,Linux应用程序的系统文件构成

Linux遵循FHS(文件系统层次结构标准),将应用程序的不同的类型文件分散存储在指定目录,实现文件分类管理,便于系统识别和用户维护

1 普通可执行程序文件:存放于/usr/bin,所有普通用户均可执行

2 服务器/管理程序文件:存放于/usr/sbin,仅root管理员可执行,多为系统服务,管理工具

3 配置文件:核心目录/etc.,若配置文件较多,会在/etc下创建专属子目录,配置文件是应用程序的(参数表),修改后需重启程序生效

4 日志文件:存放于/var/log,记录程序运行状态,错误信息,访问记录

5 参考文档/数据文件:存放于/usr/share/doc/,包含程序的安装说明,使用手册,更新日志等

6 man手册页:存放于/usr/share/man/,是程序的在线帮助文档,通过man命令/程序名可快速查询使用方法

3,Linux软件包的四大封装类型及核心特性

封装类型

文件后缀

核心特性

适用Linux发行版

核心管理工具

优势

劣势

RPM 包

.rpm

预编译二进

制包,RPM

系标准格式

RHEL、CentOS

openEuler

openSUSE

rpm、yum、DNF

免编译,安装速度快;

依赖管理严格:Ubuntu生态软件丰富

版本可能滞后;功能定制性差;仅适用于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 执

行安装脚本

免编译,自带依赖;安

装向导化;跨发行版兼

安装目录不规范;

难以通过系统包管

理器管理;卸载繁

2,RPM软件包管理工具

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.自动依赖解析:能自动计算软件包间的依赖链,提示缺失的依赖包,避免因依赖缺失导致程序无法运行,openEuler24.03对鲲鹏架构的依赖解析做了专项优化;
3.标准化命名:所有RPM包遵循统一的命名规范,通过文件名即可获取软件的完整信息,便于识别和管理;
4.事务性操作:安装/升级/卸载操作作为一个“事务”执行,若过程中出现错误(如磁盘空间不足、依赖缺失),会自动回滚,保证系统状态一致性。

(2)RPM包的标准化命名规范

RPM 包的文件名是结构化的信息载体,严格遵循以下格式,无任何例外,掌握该规范能快速识别软件的核心信息:  
软件名-版本号-发布次数.操作系统版本.硬件架构.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 为跨架构(纯脚本/配置文件)。

实战案例:查看 openEuler 24.03 安装光盘中软件包的命名,验证标准化规范:
# 先挂载光驱至/media/cdrom/,再查看包名

2,RPM命令的全流程实操(核心重点)

rpm命令是RPM包管理的原生工具,openEuler24.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 -q1软件名

列出指定软件安装的所有文件和目录

rpm -ql nginx

逐行输出该软件的所有文件路径,对应的文件构成

rpm -qf文件/目

录路径

查看指定文件/目录由哪个软件包安装(反向查询)

rpm -qf /usr/bin/nginx

输出该文件所属的软件包名

核心注意:rpm 命令仅能查询通过 RPM 方式安装的软件,对于源码编译、手动复制的软件,无法获取任何信息,这是 RPM 包管理的边界。
实战案例1:查询 openEuler 24.03 中是否安装 elinks 和 lynx,模糊查询 python3 相关软件:
# 精准查询两个软件的安装状态
[root@localhost ~]# rpm -q elinks lynx
# 模糊查询python3 相关软件(忽略大小写)
[root@localhost ~]# rpm -qa | grep -i python3

实战案例 2:查看 python3-firewall 的详细信息,反向查询其配置文件所属包:
# 查看详细信息
[root@localhost ~]# rpm -qi python3-firewall
# 反向查询配置文件所属包
[root@localhost ~]# rpm -qf /etc/firewalld/firewalld.conf

2)查询未安装的 RPM 包文件(核心:rpm -qp + 子选项)

适用于在安装前查看 RPM 包文件的信息,避免安装错误,参数为 RPM 包的完整文件路径(非软件名),常用子选项与已安装查询一致,核心为-qpi(查详细信息)、-qpl(查包内文件)。

(3)安装、升级、卸载RPM软件包

该操作是 RPM 包管理的核心应用,openEuler 24.03 完整支持 rpm 的安装、升级、卸载功能,需注意依赖关系和参数格式:安装/升级的参数为 RPM 包完整路径,卸载的参数为软件名;若存在依赖缺失,系统会直接报错,需先安装依赖包。

核心选项说明

核心选项

功能

常用组合选项

适用场景

-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,DNF软件包管理器(RPM系新一代工具,核心重点)

1,DNF概述与工作机制

DNF(DandifiedYUM)是YUM的下一代升级版本,是openEuler24.03的默认包管理器,基于RPM包管理机制,openEuler24.03对DNF做了深度优化,包括鲲鹏架构适配、镜像源智能选择、依赖解析效率提升等,解决了传统YUM的速度慢、依赖解析差、内存占用高等问题,是openEuler24.03软件管理的首选工具。

(1)DNF的核心优势

1.自动化依赖解决:采用新一代依赖解析引擎,openEuler24.03针对鲲鹏和x86架构做了双架构依赖优化,能快速构建复杂的依赖图,自动下载并安装所有缺失的依赖包,无需手动干预;

2.多仓库支持:可配置多个软件仓库(官方仓库、第三方仓库如EPEL、openEuler专属仓库),自动从仓库中获取最新的软件包;

3.智能镜像源:openEuler24.03内置了专属的镜像源调度机制,可根据用户的地理位置和网络环境自动选择最优的openEuler镜像服务器,大幅提升软件下载速度;

4.模块化管理:支持软件模块(Module),可快速切换软件的不同版本(如Python3.9/3.11),openEuler24.03强化了模块的版本隔离能力,避免版本冲突:

5.命令简洁:保持与YUM完全兼容的命令格式,学习成本低,YUM用户可无缝切换:

6.高效稳定:相比YUM,占用内存更少、执行速度更快,支持并行下载,openEuler24.03优化了

DNF的内存管理,适合大规模软件管理和云原生环境;

7.多架构兼容:完美支持x86_64、aarch64等openEuler24.03主流架构,自动匹配对应架构的

软件包。

(2)DNF的核心工作机制

DNF的工作基于软件仓库和元数据,核心流程为“读取仓库配置→下载元数据→解析依赖下载并安
装软件包”,openEuler24.e3对该流程做了轻量化优化,减少了磁盘和内存占用,具体机制如下:

1)软件仓库(Repository)

软件仓库是DNF的软件来源,分为官方仓库(openEuler24.03自带,如base、appstream、extras)和第三方仓库(如EPEL、Nginx官方仓库、openEuler社区仓库),仓库的配置文件存放于/etc/yum.repos.d/,文件后缀为.repo,该目录是DNF的核心配置目录,所有.repo文件都会被DNF自动识别。

2)元数据(Metadata)

每个软件仓库都会提供元数据,包含仓库中所有软件包的名称、版本、依赖关系、文件列表、下载地址等信息,DNF会定期下载并缓存元数据到本地(/var/cache/dnf/),openEuler24.03优化了元数据的压缩和缓存策略,避免每次操作都实时扫描仓库,大幅提升查询和安装速度,元数据默认有过期时间(如6小时),过期后会自动更新。

3)仓库配置文件解析(以openEuler-extras.repo为例)

仓库配置文件采用段式配置,每个仓库对应一个[仓库名】段,包含多个配置项,核心配置项及说明如下,掌握后可自行配置第三方仓库,openEuler24.03的仓库配置支持更多架构相关变量
 

2,DNF命令全流程实操(与YUM兼容)

DNF 命令的格式简洁直观,完全兼容YUM命令,OpenEuler24.03完整支持所有DNF核心命令,
核心格式为:dnf【选项/子命令】【软件包名】【参数]

DNF的操作均依赖网络(从仓库下载软件包/元数据),若服务器无网络,可配置openEuler24.03本地光盘仓库。

1,软件包查询(核心:list/info/search)

命令

功能说明

实战案例

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 webserver

实战案例1:查看 openEuler 24.03 中 nginx 的安装状态和详细信息:
# 查看nginx 的状态(已安装/可安装)
[root@localhost ~]# dnf list nginx
# 查看nginx 的详细信息
[root@localhost ~]# dnf info nginx


 

实战案例 2:在 openEuler 24.03 中搜索 Web 服务器相关软件,模糊查询 tree 软件:

# 搜索 Web 服务器相关软件
[root@localhost ~]# dnf search web server
# 模糊查询 tree 软件
[root@localhost ~]# dnf search tree

2,软件包安装(核心:dnfinstall)

DNF安装软件的核心优势是自动解决依赖,只需指定软件名,DNF会自动从openEuler仓库下载软件包及所有依赖包,无需手动处理,是最常用的操作之一。
核心命令:dnf install [选项]软件名
选项-y:自动确认所有操作,无需手动输入y(适用于脚本/批量操作);可同时安装多个软件,用空格分隔软件名。
实战案例:在openEuler 24.03中安装tree工具,自动确认安装(-y):
[root@localhost ~]# dnf install -y tree

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

DNF可快速升级单个软件、多个软件或整个系统的所有软件,自动解决升级过程中的依赖问题,openEuler24.03的dnf update命令支持跨架构的包升级校验,是系统维护的重要操作。
核心命令:
1.dnf update[选项】软件名:升级指定软件包;

2.dnf update[选项]:升级系统中所有可升级的软件包(系统更新);

3.选项-y:自动确认升级。
实战案例:在openEuler 24.03中升级NetworkManager软件包,自动确认:
[root@localhost ~]# dnf update -y NetworkManager

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

DNF卸载软件时,会自动检查并提示依赖的软件包,避免误卸载导致系统功能异常,openEuler24.03强化了dnf remove的依赖校验,防止误删系统核心包,卸载后会自动释放磁盘空间。
核心命令:dnf remove [选项】软件名

选项-y:自动确认卸载;
可同时卸载多个软件,用空格分隔。
实战案例:在 openEuler 24.03 中卸载已安装的 tree 工具,自动确认:
[root@localhost ~]# dnf remove -y tree

5,DNF其他常用命令

命令

功能说明

dnf clean all

清理DNF的缓存(元数据+下载的软件包),解决缓存损坏问题,openEuler优化了缓存清理的速度

dnf makecache

手动生成元数据缓存,提升后续操作速度,支持多架构元数据缓存

dnf repolist

列出当前启用的所有软件仓库

dnf repolist all

列出所有仓库(启用+禁用)

dnf module list

软件名 查看软件的模块版本(如Python、Node.js),openEuler强化了模块的版本管理

dnf check

检查系统中存在的依赖问题,openEuler新增了架构依赖校验

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)等架构,部分软件
无官方二进制包,编译安装是最优选择。

编译安装的前提:安装开发环境

源代码编译需要编译器和构建工具,核心依赖为gcc(c/C++编译器)和make(构建工具),此外,不同软件还需要对应的开发库(如Nginx需要pcre-devel、zlib-devel),开发库的后缀通常为-devel,表示开发用的头文件和库文件。
openEuler 24.03 的官方仓库提供了完整的开发工具链,同时对鲲鹏架构的编译工具做了专项优化,核心命令:在 openEuler 24.03 中通过 DNF 安装基础编译环境:

[root@localhost ~]# dnf install -y gcc make  
# 基础编译工具,openEuler 24.03 默认 gcc 12.2 版本
# 通用开发库(大部分软件编译都需要)
[root@localhost ~]# dnf install -y pcre-devel zlib-devel openssl-devel

2,源代码编译安装的标准流程(四步核心,通用所有开源软件)

所有开源软件的源代码编译安装都遵循统一的标准流程,核心为解包→配置→编译→安装四步

步骤1:下载并解包源代码包(Tar解包)

(1)下载源代码包

优先从软件官方网站下载源代码包,保证包的完整性和安全性,Nginx 官方下载地址:  
http://nginx.org/download/,在 openEuler 24.03 中使用 wget 命令直接下载:
# 下载Nginx 1.26.2 源代码包
[root@localhost ~]# wget http://nginx.org/download/nginx-1.26.2.tar.gz

(2)解包源代码包

源代码包为tar压缩包,使用tar命令解包,核心选项:-z(解.gz包)、-x(解包)、-v(显示详细信息)、-f(指定包文件),解包后会生成一个同名的源代码目录
# 解包 Nginx 源代码包
[root@localhost ~]# tar -zxvf nginx-1.26.2.tar.gz
# 解包完成后,查看生成的目录
[root@localhost ~]# ls

步骤2:配置编译参数(./configure,核心定制步骤)

解包后进入源代码目录,执行./configure脚本进行编译配置,这是定制化的核心步骤,通过配置选项指定软件的安装目录、启用/禁用功能模块、依赖库路径等。
(1)进入源代码目录  
[root@localhost ~]# cd nginx-1.26.2  

(2)执行./configure 配置,指定核心参数  

Nginx 的核心配置选项为--prefix(指定安装目录),其他选项为功能模块,本次配置开启 SSL 模块(HTTPS  支持)和 HTTP/2 模块(高性能网络协议),同时适配 openEuler 24.03 的系统环境,这是企业级 Nginx  的基础配置:  

[root@localhost nginx-1.26.2]# ./configure --prefix=/usr/local/nginx --with-http_ss  
l_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.

配置失败的解决:若配置失败,会提示 “error: xxx not found”,如 “error: SSL modules require  
the OpenSSL library”,表示缺失 openssl-devel,在 openEuler 24.03 中通过 dnf 安装对应依赖  
后重新执行 ./configure 即可。

步骤3:编译源代码(make,无定制,纯执行)

配置成功后,执行make命令进行编译,make会根据生成的Makefile脚本,调用gcc编译器将源代码转换为二进制可执行文件。openEuler24.03的gcc编译器做了编译优化,支持多核并行编译,可通过-j参数指定编译核心数,提升编译速度,编译过程的时间取决于软件大小和服务器性能(Nginx编译仅需数秒)。
核心命令:
[root@localhost nginx-1.26.2]# make  # 基础编译,单核心

# 多核并行编译(推荐),指定 4 个核心,根据服务器 CPU 调整
[root@localhost nginx-1.26.2]# make -j 4

编译成功的标志:无 error、warning 可忽略,最后回到命令行提示符,无报错信息。

步骤4:安装编译后的程序(makeinstall)

编译成功后,执行makeinstall命令,将编译好的二进制文件、配置文件、帮助文档等复制到./configure指定的安装目录(/usr/local/nginx),完成最终的安装。openEuler24.03会自动为安装的程序添加执行权限,无需手动配置。
核心命令:直接执行 make install:
[root@localhost nginx-1.26.2]# make install

# 安装过程输出少量信息,无报错表示安装成功

步骤5:验证安装并启动服务(实战验证)

安装完成后,所有Nginx的文件都在/usr/local/nginx目录中,核心目录遵循openEuler的文件规范:

sbin/:可执行文件目录,nginx为核心启动程序;

conf/:配置文件目录,nginx.conf为核心配置文件;

logs/:日志文件目录,error.log和access.log为核心日志。

(1) 启动 Nginx 服务
# 进入 Nginx 的 sbin 目录,执行 nginx 启动程序
[root@localhost nginx-1.26.2]# cd /usr/local/nginx/sbin
[root@localhost sbin]# ./nginx  # 启动 Nginx,无输出表示启动成功

(2) 验证 Nginx 是否启动
使用 ps -ef | grep nginx 查看 Nginx 进程,若存在 master process(主进程)和 worker process  
(工作进程),表示启动成功,openEuler 24.03 的 ps 命令会显示进程的架构信息:
[root@localhost sbin]# ps -ef | grep nginx

(3)浏览器验证

在客户端浏览器中输入 openEuler 24.03 服务器的 IP 地址,若看到Nginx 的欢迎页面,表示 Nginx 在 openEuler 24.03 上编译安装成功,可正常提供 Web 服务。

(3)源代码编译安装的核心优势与卸载方法

(1)核心优势

定制化:可根据需求开启/关闭功能模块,优化软件性能,适配openEuler24.03的系统特性;

最新版本:快速获取软件的最新功能和安全补丁,弥补openEuler官方仓库包版本滞后的问题;

独立目录:所有文件都在指定的安装目录,便于管理和迁移,符合openEuler的文件管理规范;

跨架构兼容:可在openEuler24.03的x86_64、aarch64等架构上编译,适配不同硬件环境;

深度优化:可针对openEuler的系统内核和硬件架构做编译优化,提升程序运行效率。

(2)卸载方法

源代码编译安装的软件无官方卸载命令,由于所有文件都在--prefix指定的安装目录,直接删除该目录即可完成卸载,无残留,这是--prefix参数的核心价值,在openEuler24.03中该方法安全无副作用:
# 卸载Nginx,直接删除安装目录
[root@localhost ~]# rm -rf /usr/local/nginx

三种应用程序管理方式的对比与场景选择

管理方式

核心工具

安装速度

依赖处理

功能定制性

软件版本

管理难度

openEuler24.03适配性

适用场景

RPM原生命令

rpm

快(免编译)

手动处理,需自行安装依赖

无,仅能安装默认功能

标准化,版本较稳定

中等,需处理依赖

完美支持,优化了鲲鹏架构依赖解析、提升海量包查询速度

无网络环境的本地安装;单软件快速安装/卸载

DNF包管理器

dnf

快(免编

译)

自动解决,无需手动干预

低,仅能安装仓库中预设的功能

openEuler官方仓库版本,略滞后于最新版

低,命令

简洁,自动化程度高

深度优化,支持

x86_64/aarch

64多架构、智能镜像源调度、模块化版本隔离

日常系统管理:标准化服务部署:快速安装/升级/卸载软件:有网络环境的服务

器:云原生环

境:企业级标

准化部署

源代码编译安

./confi

gure/make/make install

慢(需编

译)

手动处理,需安装编译依赖和开发库

高,可按需开启/关闭功能模块,修改源代码

最新版本,可获

取最新功能和安全补丁

高,需掌

握编译环境和配置

选项

完美支持,提供

gcc12.2完善开发工具链,适

企业级定制化服务部署:需要软件最新版

本:鲲鹏架构

专属适配:修

改软件源代

码定制功能;

特殊系统环

境适配

核心选择原则

1.日常使用/标准化部署:优先选择DNF,自动化程度高,管理难度低,是openEuler24.03的默认选择,适配绝大多数生产和运维场景,能充分利用openEuler的智能镜像源和自动依赖解决能力;

2.无网络/离线环境:选择RPM本地安装,需提前从openEuler官方镜像站下载好所有依赖包,适合机房隔离、无外网的服务器部署;

3.企业级定制化/鲲鹏架构适配:选择源代码编译安装,可针对openEuler24.03的内核特性和鲲鹏硬件架构做编译优化,开启专属功能模块,满足个性化业务需求,是搭建Nginx、MySQL、Redis等企业级定制服务的首选。

Logo

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

更多推荐