Linux管理应用程序
1. Linux 命令 VS Linux 应用程序
二者都属于可执行单元,但定位、存放路径差别很大。
| 对比项 | Linux 系统命令 | Linux 应用程序(软件) |
|---|---|---|
| 文件大小 | 轻量小巧 | 体积大,整套功能模块 |
| 存放路径 | /bin、/sbin;bash 内置命令 |
/usr/bin、/usr/local/bin;管理服务放/usr/sbin、/usr/local/sbin |
| 安装时机 | 系统自带,属于系统基础组件 | 系统装好之后,按需额外安装 |
| 业务作用 | 做系统基础操作:ls、cd、rm | 实现业务服务,如 Nginx、数据库、Python |
| 调用语法 | 固定格式:命令 + 选项 + 参数 | 开发者自定义,格式不固定 |
| 运行界面 | 仅字符终端 CLI | 支持命令行、图形 GUI 等多种形式 |
2. 应用程序文件分布(FHS 标准)
openEuler 遵循 FHS 文件系统标准,软件不同类型文件分开存放在固定目录。
| 文件类型 | 存放目录 | 说明 |
|---|---|---|
| 普通可执行程序 | /usr/bin |
普通普通用户就能运行 |
| 系统服务管理程序 | /usr/sbin |
仅限 root 管理员执行,防火墙、网络管理工具 |
| 配置文件 | /etc |
软件参数;复杂软件会建立子目录;修改配置需要重启程序生效 |
| 运行日志 | /var/log |
排错核心,记录报错、访问记录 |
| 参考说明文档 | /usr/share/doc/ |
软件说明、更新日志 |
| man 帮助手册 | /usr/share/man/ |
man 软件名查看帮助 |
![]()
3. Linux 软件包四大封装
分两大类:二进制包(直接用,不用编译)、源码包(需要编译)
| 封装类型 | 后缀 | 特点 | 适用系统 | 管理工具 | 优点 | 缺点 |
|---|---|---|---|---|---|---|
| RPM 包 | *.rpm | 预编译二进制 | RHEL/openEuler | rpm、dnf | 免编译,速度快,依赖提示 | 版本更新慢,只能 RPM 系列系统用 |
| DEB 包 | *.deb | 预编译二进制 | Ubuntu、Debian | dpkg、apt | 生态丰富,依赖管理严格 | 仅限 Debian 家族 |
| 源码包 TarBall | .tar.gz/.tar.bz2 | 原始源代码 | 全系列 Linux | gcc、make | 版本新,可以自定义功能,跨系统 | 需要装编译环境,步骤繁琐,手动处理依赖 |
| 自包含安装包 | .bin / install.sh | 自带全部依赖 | 全系列 Linux | 执行脚本安装 | 自带依赖,开箱即用 | 目录混乱,系统包管理器管不到,卸载麻烦 |
二、RPM 软件包管理工具
注意:rpm 底层工具,不会自动解决依赖,出现依赖报错要手动补齐依赖包。
1. RPM 四大核心能力
- 全生命周期管理:数据库路径
/var/lib/rpm/,记录每个软件的文件、依赖、版本; - 依赖解析:识别软件依赖关系,打印缺失依赖;
- 统一包命名规则,从文件名读出版本、架构信息;
- 事务机制:安装升级卸载作为事务,出错自动回滚,保障系统不崩。
2. rpm 命令语法
查找未安装![]()
![]()
| 核心选项 | 作用 |
|---|---|
-q |
查询已经装好的软件 |
-qp |
查询还没安装的 rpm 包文件(要写完整文件路径) |
-i |
全新安装 |
-U |
升级;没装过就直接安装 |
-F |
只升级已经安装好的,没装就放弃操作 |
-e |
卸载软件,只写软件名,不要写包文件路径 |
-V |
校验软件完整性 |
--nodeps忽略依赖检查;--force强制覆盖安装,容易搞坏系统。
安装RPM包(安装 openEuler 24.03光盘中的wget包/安装成功:查看可执行文件路径/卸载RPM包(卸载命令:rpm -e 软件名)/验证卸载成功:![]()
![]()
![]()
三、DNF 包管理器(openEuler 默认,YUM 继任者)
DNF 底层基于 RPM,最大亮点自动处理依赖;需要网络,离线可以配置本地光盘源。
1. DNF 主要优势
- 自动解析、下载全部依赖,不用人工处理;
- 支持多个软件仓库,官方源、第三方源;仓库配置目录
/etc/yum.repos.d/*.repo; - 智能镜像,自动选速度快的服务器;
- 模块化,可以切换软件不同版本;
- 命令兼容旧 YUM,上手简单;
- 内存占用低,支持并行下载;完美支持 x86_64、aarch64 鲲鹏架构。
2. DNF 查询软件
| 命令 | 功能 |
|---|---|
| dnf list all | 全部软件(已装 + 仓库可用) |
| dnf list nginx | 看指定软件状态、可用版本 |
| dnf list available | 只看仓库里还没装的包 |
| dnf list updates | 查看哪些包可以升级 |
| dnf info tree | 软件详细信息,版本、大小、依赖 |
| dnf search "web server" | 按关键词搜索软件v |
查看nginx的状态:/查看nginx详细信息:![]()
![]()
核心命令:dnf install 【选项】 软件名:
选项-y:自动确认所有操作,无需手动输入y(适用于脚本/批量操作);
可同时安装多个软件,用空格分隔软件名。
安装tree工具,自动确认安装(-y)
四、源代码编译安装软件】
适用场景:想要最新版本、自定义功能模块、适配特殊硬件架构。 缺点:没有 rpm 数据库记录,卸载需要手动删目录。
1. 使用场景
- 官方二进制包版本老旧,需要软件最新版;
- 需要开关特定功能模块(Nginx 开启 SSL、http2);
- 鲲鹏 aarch64 等特殊硬件,没有现成 RPM 包;
- 需要修改软件源代码,增加自研业务逻辑。
2. 编译环境前置准备
必须安装编译工具链 gcc、make;-devel结尾包是开发库,存放头文件。![]()
载源代码包:优先从软件官方网站下载源代码包,保证包的完整性和安全性,Nginx官方下载地址:http://nginx.org/download/。
下载Nginx1.26.2源代码包:
解包Nginx源代码包:
进入源代码目录
执行./configure配置,指定核心参数
配置成功后,执行make命令进行编译,make会根据生成的Makefile脚本,调用gcc 编译器将源代码转换为二进制可执行文件
安装完成后,所有 Nginx的文件都在/usr/1ocal/nginx 目录中,核心目录遵循 openEuler
sbin/:可执行文件目录,nginx为核心启动程序;
conf/:配置文件目录,nginx.conf为核心配置文件;
logs/:日志文件目录,error.log和access.1og为核心日志。
启动Nginx服务![]()
验证Nginx
五,源码编译优缺点 & 卸载
优点:
- 自由开关功能模块,硬件层面性能优化;
- 获取最新版本,不受系统仓库版本限制;
- 全部文件集中在
--prefix目录,方便迁移; - 兼容 x86_64、鲲鹏 aarch64。
缺点:需要编译环境;系统包管理器无法识别;升级需要重新编译。
卸载源码编译软件:没有卸载脚本,直接删除整个安装目录![]()
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)