管理应用程序0827
本次课程主要学习了在openeuler24.03系统中管理Linux应用程序的三大核心方式:RPM命令、DNF包管理器以及源代码编译安装的内容。这些内容涵盖了从基础概念、文件构成、包封装类型到具体命令实操的知识体系。可以根据实际场景选择最优的软件管理方案。
一、Linux应用程序基础
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)等多种形式 |
1.2 Linux应用程序的系统文件构成
Linux遵循FHS(文件系统层次结构标准),将应用程序的不同类型文件分散存储在指定目录:
1. 普通可执行程序文件:存放于 /usr/bin ,所有用户可执行。
2.服务器/管理程序文件:存放于 /usr/sbin ,仅root可执行。
3.配置文件:存放于 /etc ,修改后需重启程序生效。
4.日志文件:存放于 /var/log ,记录运行状态、错误信息等。
5.参考文档/数据文件:存放于 /usr/share/doc/ 。
6.man手册页:存放于 /usr/share/man/ ,通过man命令查询帮助。
1.3 软件包的四大封装类型
Linux软件包分为二进制包(免编译)和源代码包(需编译)两大类。以下是四种主要类型:
|
封装类型 |
文件后缀 |
核心特性 |
适用发行版 |
管理工具 |
优势 |
劣势 |
|
RPM包 |
*.rpm |
二进制,免编译 |
RHEL/CentOS/openEuler |
rpm/yum/DNF |
安装快,版本标准化 |
版本可能滞后,仅RPM系 |
|
DEB包 |
*.deb |
二进制,免编译 |
Ubuntu/Debian |
dpkg/apt |
依赖管理严格 |
仅Debian系 |
|
源代码包 |
.tar.gz/.tar.bz2 |
原始代码,需编译 |
所有Linux |
gcc/make |
版本最新,可定制 |
需编译环境,步骤繁琐 |
|
自包含安装程序 |
无固定 |
自带依赖 |
所有Linux |
chmod +x |
免编译,跨发行版 |
目录不规范,卸载麻烦 |
二、RPM软件包管理工具
2.1 RPM是什么
RPM(Red Hat Package Manager)是Linux二进制包管理的开山鼻祖,由Red Hat于1997年首创,是openEuler、RHEL等RPM系发行版的核心包管理机制。
RPM的四大核心优势:
全生命周期管理:通过数据库(/var/lib/rpm/)跟踪软件包状态
自动依赖解析:自动计算依赖链,提示缺失的依赖包
标准化命名:通过文件名即可获取软件的完整信息
事务性操作:安装/升级/卸载出错时自动回滚
2.2RPM包命令规范
格式:软件名-版本号-发布次数.操作系统版本.硬件架构.rpm
示例:lynx-2.8.9-20.oe2403.x86_64.rpm
- 软件名:lynx
- 版本号:2.8.9(主版本.次版本.修订号)
- 发布次数:20
- 操作系统版本:oe2403(openEuler 24.03)
- 硬件架构:x86_64(noarch表示跨架构)
2.3 RPM命令实操
rpm命令是RPM包管理的原生工具,支持查询、安装、升级、卸载等操作。
2.3.1 查询软件包信息(最常用部分功能)
rpm -q 软件名 - 查询指定软件是否已安装
rpm -qa - 列出所有已安装的RPM包
rpm -qa | grep -i 关键词 - 模糊查询含关键词的软件包
rpm -qi 软件名 - 查看软件的详细信息
rpm -ql 软件名 - 列出软件安装的所有文件
rpm -qf 文件路径 - 查看文件由哪个软件包安装(反向查询)
rpm -qpi 包文件路径 - 查看未安装的RPM包信息
rpm -qpl 包文件路径 - 查看未安装的RPM包内文件列表
2.3.2 安装、升级、卸载
rpm -ivh 包文件.rpm - 安装新的RPM包(显示进度)
rpm -Uvh 包文件.rpm - 升级软件包,未安装则直接安装
rpm -Fvh 包文件.rpm - 更新软件包,未安装则放弃
rpm -e 软件名 - 卸载软件包
注意:安装/升级的参数是RPM包完整路径,卸载的参数是软件名。如果存在依赖缺失,系统会报错,需先安装依赖包。
三、DNF软件包管理器
3.1 DNF概述
DNF(Dandified YUM)是YUM的升级版,是RPM系发行版的新一代包管理器,基于管理机制做了深度优化,包括鲲鹏架构适配,镜像源只能选择,依赖解析效率提升等。它能够自动解决软件包依赖关系,从多仓库下载并安装软件。
3.2 DNF的核心优势
自动解决依赖:自动下载并安装所有依赖包
多仓库支持:从配置的软件源自动获取软件包
与YUM兼容:命令格式和配置文件与YUM一致
性能优化:比YUM更快,内存占用更少
3.3 DNF命令实操
dnf install 软件名 - 安装软件包(自动解决依赖)
dnf remove 软件名 - 卸载软件包
dnf update 软件名 - 更新指定软件包
dnf update - 更新系统中所有软件包
dnf list installed - 列出已安装的软件包
dnf search 关键词 - 搜索软件包
dnf info 软件名 - 查看软件包详细信息
dnf groupinstall "组名" - 安装软件包组
dnf clean all - 清理缓存
注意:DNF的配置文件位于/etc/dnf/dnf.conf,软件源配置位于/etc/yum.repos.d/目录。
四、 从源代码编译安装程序
4.1 源代码编译安装概述:
源代码编译安装是从软件的原始代码开始,通过编译工具将其转换为可执行程序的二进制过程。这种方式可以获得最新版本,并可以按需定制功能。
4.1.1 适用场景:
需要最新版本的功能(官方二进制包尚未更新)
需要定制编译选项(如优化特定硬件)
需要适配特殊系统环境
需要修改软件源代码
软件未提供对应发行版的二进制包
4.2 编译流程
第一步:./configure
配置编译选项,检查编译环境,生成Makefile文件。可以通过--prefix指定安装路径,--enable/--disable开启/关闭功能。
第二步:make
根据Makefile编译源代码,生成可执行文件。可以加-j参数指定并行编译线程数(如make -j4)。
第三步:make install
将编译好的文件安装到系统指定目录(默认/usr/local/)。需要root权限。
第四步:验证安装
运行程序或查看版本号确认安装成功。
编译安装Nginx
# 下载源码包
wget http://nginx.org/download/nginx-1.26.2.tar.gz
# 解压
tar -zxvf nginx-1.26.2.tar.gz
cd nginx-1.26.2
# 配置
./configure --prefix=/usr/local/nginx
# 编译
make -j4
# 安装
make install
4.3 三种应用程序管理方式的对比与场景选择
|
对比维度 |
RPM包管理 |
DNF包管理 |
源代码编译 |
|
安装速度 |
快(直接安装二进制) |
快(自动下载+安装) |
慢(需编译) |
|
依赖管理 |
手动解决依赖 |
自动解决依赖 |
手动解决依赖 |
|
定制性 |
差(固定编译选项) |
差(固定编译选项) |
强(可自定义配置) |
三种对比的简单策略:标准化部署用DNF,快速安装用RPM,定制化开发用源代码编译。
五、总结
Linux应用程序管理有三种方式:RPM、DNF、源代码编译安装
RPM是基础包管理工具,适合查询和本地包操作
DNF是新一代包管理器,自动解决依赖,推荐日常使用
源代码编译安装适合需要定制或获取最新版本的场景
掌握这三种方式,可以根据实际需求选择最优方案
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐



所有评论(0)