管理应用程序
一、Linux应用程序基础
1.Linux命令与应用程序的核心区别
|
对比维度 |
Linux命令 |
Linux应用程序 |
|
执行文件大小 |
体积小巧,多为轻量级可执行文件 |
体积更大,包含完整功能的模块 |
|
存储目录 |
核心命令:/bin、/sbin;内部命令集成于Bash |
普通程序:/user/bin、/user/local/bin;服务程序:/user/sbin、/user/local/sbin |
|
安装时机 |
随操作系统默认安装,为系统基础组件 |
操作系统安装后,根据需求另行安装 |
|
功能定位 |
辅助系统管理,实现基础操作(如ls、cd、rm) |
提供独立业务功能,等同于“软件”(如Nginx、MySQL、Python) |
|
执行格式 |
固定遵循“命令字+选项+参数”标准格式 |
无固定格式,由开发者定义(可带图形界面/命令行/脚本启动) |
|
运行界面 |
仅支持字符操作界面(CLI) |
支持CLI、图形界面(GUI)等多种形式 |
2.Linux应用程序的系统文件构成
Linux遵循FHS,将应用程序的不同类型文件分散存储在指定目录,实现文件分类管理,便于系统识别和用户维护。
1.普通可执行程序文件:存放于/uer/bin,所有普通用户均可执行
2.服务器/管理程序文件:存放于/usr/sbin,仅root管理员可执行,多为系统服务、管理工具
3.配置文件:核心目录/etc,若配置文件较多,会在/etc下创建专属子目录,配置文件是应用程序的“参数表”,修改后重启程序生效
4.日志文件:存放于/var/log,记录程序运行状态、错误信息、访问记录等,是问题排查的核心依据
5.参考文档/数据文件:存放于/usr/share/doc/,包含程序的安装说明、使用手册、更新日志等
6man手册:存放于/usr/share/man/,是程序的在线帮助文档,通过man命令/程序名可快速查询使用方法
3.Linux软件包的四大封装类型及核心特性
|
封装类型 |
文件后缀 |
核心特性 |
适用Linux发行版 |
核心优势工具 |
优势 |
劣势 |
|
RPM包 |
*.rpm |
预编译二进制包,RPM系统标准格式 |
RHEL、CentOS、openEuler、openSUSE |
rpm、yum、DNF |
免编译,安装速度快;版本标准化;包管理器自动解决依赖 |
版本可能滞后;功能定制性差;仅适用于RPM系发行版 |
|
DEB包 |
*.deb |
预编译二进制包,Debain系统标准格式 |
Ubuntu、Debian、Linux Mint |
dpkg、apt |
免编译,安装速度快;依赖管理严格;Ubuntu生态软件丰富 |
仅适用于Debian系发行版;跨发行版兼容性差 |
|
源代码包(TarBall) |
.tar.gz/.tar.bz2 |
软件原始代码,未编译 |
所有Linux发行版(通用) |
gcc、make、./configure |
版本最新;可按需定制功能;跨发行版兼容 |
需安装编译环境;安装步骤繁琐;需手动解决依赖 |
|
自包含安装程序 |
.bin/.sh/install.sh |
预编译+依赖封装,独立安装包 |
所有Linux发行版(通用) |
chmod+x执行安装脚本 |
免编译,自带依赖;安装向导化;跨发行版兼容 |
安装目录不规范;难以通过系统包管理器管理;卸载繁琐 |
二、RPM软件包管理工具
1.RPM概述
RPM使Linux二进制包管理的开山鼻祖,是openEuler、RHEL等RPM系发行版的核心包管理机制,其数据库驱动的事务性管理和依赖解析引擎奠定了Linux二进制包管理的行业标准。
1.1 RPM核心优势
1.全生命周期:通过系统数据库跟踪软件包的安装、升级、卸载,记录每个软件包的文件列表、依赖关系、版本信息,确保系统软件状态可追溯
2.自动依赖解析:能自动计算软件包间的依赖链,提示缺失的依赖包,避免因依赖缺失导致程序无法运行
3.标准化命名:所有RPM包遵循统一的命名规范,通过文件名即可获取软件的完整信息,便于识别和管理
4.事务性操作:安装/升级/卸载操作作为一个“事务”执行,若过程中出现错误,会自动回滚,保证系统状态一致性
1.2 RPM包的标准化命名规范
RPM包的文件名是结构化的信息载体,严格遵循以下格式:
软件名-版本号-发布次数.操作系统版本.硬件架构.rpm
1.软件名(lynx):软件项目的核心名称,对应程序功能,是查询/卸载软件是的核心标识
2.版本号(2.8.9):遵循主版本号.次版本号.修订号.三级规范,主版本号大升级表示功能重大变更,次版本号表示功能新增,修订号表示Bug修复
3.发布次数(20):该版本在对应版本中的官方构建次数,数字越大表示打包维护越新
4.操作系统版本(oe2403):os代表openEuler,2403表示适用于openEuler 24.03及兼容版本
5.硬件架构(x86_64):表示软件适配的CPU架构,openEuler 24.03重点支持x86_64、arrch64(鲲鹏)等架构,noarch为跨架构(纯脚本/配置文件)
2.RPM命令的全流程实操(核心重点)
2.1 RPM命令的基本格式
基本格式:
rpm [核心选项] [子选项] [参数]
核心功能与对应核心选项:
查询/验证:-q(查询)、-v(验证)
安装/升级:-i(安装)、-U(升级,未安装则直接安装)、-F(更新,未安装则放弃)
卸载:-e(卸载)
2.2 查询RPM软件包信息(最常用功能,重点掌握)
查询已安装的RPM软件包(核心:rpm -q+子选项)
|
命令组合 |
功能说明 |
实战案例 |
输出效果 |
|
rpm -q 软件名 |
查询指定软件是否已安装 |
rpm -q wegt |
已安装:输出包名;未安装:提示“未安装软件包wget” |
|
rpm -qa |
列出系统中所有已安装的RPM软件包 |
rpm -qa |
逐行输出所有包名,数量可达数千个 |
|
rpm -qa | grep -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/ngix |
输出该文件所属的软件包名 |
实验案例:
查看系统中已安装的软件

查看openEuler光盘中的内容

查看未安装的软件

2.3 安装、升级、卸载RPM软件包(实操重点)
核心选项说明
|
核心选项 |
功能 |
常用组合选项 |
适用场景 |
|
-i |
安装新的RPM包 |
-ivh |
全新安装,查看安装进度和详细信息 |
|
-U |
升级指定软件包,未安装则直接安装 |
-Uvh |
软件版本更新,兼容全新安装 |
|
-F |
更新指定软件包,未安装则放弃 |
-Fvh |
仅对已安装软件进行版本更新 |
|
-e |
卸载指定软件包 |
-e |
移除已安装的软件,仅需软件名 |
|
子选项 -h |
以“#”显示安装/升级进度 |
搭配-i/-U/-F |
直观查看安装过程 |
|
子选项 -v |
显示安装/升级的详细消息 |
搭配-i/-U/-F |
排查安装错误 |
|
--force |
强制安装 |
-ivh --force |
替换已安装的同版本包/安装旧版本包 |
|
--noodeps |
忽略依赖关系 |
-ivh --nodeps / -e --nodeps |
强制安装/卸载,忽略依赖检查 |
安装RPM包

卸载RPM包

处理以来错误

解决方法

三、DNF软件包管理器(RPM系统新一代工具,核心重点)
1 .DNF概述与工作机制
1.1 DNF的核心优势
自动化依赖解决:采用新一代依赖解析引擎,openEuler 24.03针对鲲鹏和x86架构做了双架构以来优化,能快速构建复杂的依赖图,自动下载并安装所有缺失的依赖包,无需手动干预
多仓库支持:可配置多个软件仓库,自动从仓库中获取最新的软件包
智能镜像源:openEuler24.03内置了专属的镜像源调度机制,可根据用户的地理位置和网络环境自动选择最优的openEuler镜像服务器,大幅提升下载速度
模块化管理:支持软件模块,可快速切换软件的不同版本,openEuler 24.03强化了模块的版本隔离能力,避免版本冲突
命令简洁:保持与YUM完全兼容的命令格式,学习成本低,YUM用户可无缝切换
高效稳定:相比YUM,占用内存更少、执行速度更快,支持并行下载,openEuler 24.03优化了DNF的内存管理,适合大规模软件管理和云原生环境
多架构兼容:完美支持x86_64、aarch64等openEuler 24.03主流架构,自动匹配对应架构的软件包
1.2 DNF的核心工作机制
DNF的工作基于软件仓库和元数据,核心流程为“读取仓库配置——下载元数据——解析依赖——下载并安装软件包”。
(1)软件仓库
软件仓库是DNF的软件来源,分为官方仓库和第三方仓库,仓库的配置文件存放于/etc/yum.repos.d/,文件后缀为.repo,该目录是DNF的核心配置目录,所有.repo文件都会被DNF自动识别
(2)元数据
每个软件仓库都会提供元数据,包含仓库中所有软件包的名称、版本、依赖关系、文件列表、下载地址等信息。DNF会定期下载并缓存策略,避免每次操作都实时扫描仓库,大幅提升查询和安装速度,元数据有默认有过期时间,过期后会自动更新
(3)仓库配置文件解析

2.DNF命令全流程实操(与YUM兼容,重点掌握)
DNF命令的核心格式为:
DNF [选项/子命令] [软件包名] [参数]
2.1 软件包查询
|
命令 |
功能说明 |
实战案例 |
|
dnf list all |
列出所有已安装和仓库中可用的软件包 |
dnf list all |
|
dnf list 软件名 |
查看指定软件的安装状态和可用版本 |
dnf list nginx |
|
dnf list available |
仅列出仓库中可安装的未安装软件包 |
dnf list available |
|
dnf list updates |
列出系统中可升级的软件包 |
dnf list updates |
|
dnf into 软件名 |
查看指定软件包的详细信息(版本、大小、用途、依赖等) |
dnf into tree |
|
dnf search 关键词 |
搜索仓库中名称/描述含指定关键词的软件包 |
dnf search web server |
查看nginx的状态

查看nginx的详细信息

模糊查询tree软件

2.2 软件包安装(核心:dnf install)
核心命令:dnf install [选项] 软件名
选项-y:自动确认所有操作,无需手动输入y(适用于脚本/批量操作)
可同时安装多个软件,用空格分隔分隔软件名
2.3 软件包升级(核心:dnf update)
核心命令:
dnf update [选项] 软件名:升级指定软件名
dnf update [选项]:升级系统中所有可升级的软件包(系统更新)
选项-y:自动确认升级

2.4 软件包卸载(核心:dnf remove)
核心命令:dnf remove [选项] 软件名
选项-y:自动确认卸载
可同时卸载多个软件,用空格分隔

2.5 DNF其他常用命令
|
命令 |
功能说明 |
|
dnf clean all |
清理DNF的缓存(元数据+下载的软件包),解决缓存损坏问题,openEuler优化了缓存清理的速度 |
|
dnf makecache |
手动生成元数据缓存,提升后续操作速度,支持多架构元数据缓存 |
|
dnf repolist |
列出当前启用的所有软件仓库 |
|
dnf repolist all |
列出所有仓库(启用+禁用) |
|
dnf module list 软件名 |
查看软件的模块版本,openEuler强化了模块的版本管理 |
|
dnf check |
检查系统中存在依赖问题,openEuler新增了架构依赖校验 |
四、源代码编译安装程序
1.源代码编译安装概述
源代码是开源软件的原始发布形式,以.tar.gz/.tar.bz2为后缀的压缩包,包含软件的所有原始代码,需要通过编译转换为系统可识别的二进制可执行文件后才能运行。
与RPM/DNF的二进制相比,源代码编译安装的核心价值在于定制化,是搭建企业级服务的常用方式,适用于:
1.需要软件的最新版本:开源软件通常会先发布源代码包,二进制包(RPM/DEB)会滞后数周/数月,编译安装可快速获取最新功能和补丁
2.需要定制软件功能:二进制包不仅包含软件的基础功能,编译安装是可通过配置选项开启/关闭特定功能
3.需要适配特殊系统环境:openeuler 24.03广泛应用于鲲鹏服务器、云原生环境等特殊场景,部分二进制包无法适配,编译安装可根据硬件架构优化编译参数,提升程序性能
4.需要修改软件源代码:企业可根据自身需求修改开源软件的源代码,添加自定义功能,修改后需要重新编译安装才能生效
5.适配openeuler专属架构:针对openeuler 24.03支持的鲲鹏等架构,部分软件无官方二进制包,编译安装是最优选择
编译安装的前提:安装开发环境
源代码编译需要编译器和构建工具,核心依赖为gcc(C/C++编译器)和make(构建工具),此外,软件还需要对应的开发库,开发库的后缀通常为-devel,表示开头用的头文件和库文件。
核心命令:
[root@localhost ~]# dnf install -y gcc make
[root@localhost ~]# dnf install -y pcre-devel zlib-devel openssl-devel
[root@localhost ~]# dnf install -y gcc-aarch64-linux-gnu make-aarch64-linux-gnu
2.源代码编译安装的标准流程
所有开源软件的源代码编译都遵循统一标准,核心为解包——配置——编译——安装,简称.configure——make——make install
步骤1:下载并解包源代码包
下载并解包源代码包
优先从软件官方网站下载资源代码包,保证安全性和完整性,Nginx官方下载网址:http://nginx.org/download/

解包源代码包

步骤2:配置编译参数
进入源代码目录,执行.configure配置,指定核心参数

配置成功标志

步骤3:编译源代码
配置成功后,执行make命令进行编译,make会根据生成的Makefile脚本,调用gcc编译器将源代码转换为二进制可执行文件。
核心命令:
[root@localhost nginx-1.26.2]# make
[root@localhost nginx-1.26.2]# make -j 4
步骤4:安装编译后的程序
编译成功后,执行make install命令,将编译好的二进制文件、配置文件、帮助文档等复制到.configure的指定目录(/user/local/nginx),完成最终安装。
核心命令:
[root@localhost nginx-1.26.2]# make install
步骤5:验证安装并启动服务
安装完成后,所有Nginx的文件都在/user/local/nginx目录中
sbin/:可执行文件目录,nginx为核心启动程序
conf/:配置文件目录,nginx.conf为核心配置文件
logs/:日志文件目录,error.log和access.log为核心日志
方法如下:

卸载方法:

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

所有评论(0)