目录
一、Linux 应用程序基础
1.1Linux 应用程序的系统文件构成
1.2Linux软件封装类型
二、RPM软件包管理工具
2.1RPM概述
2.2RPM常用参数
2.3RPM常用命令
三、DNF软件包管理器
3.1DNF概述与核心优势
3.2DNF工作机制
3.3DNF实操命令
3.3.1软件查询命令
3.3.2软件安装、升级、卸载
3.3.3仓库与缓存管理
3.4RPM与DNF区别
四、从源代码编译安装程序
4.1源码安装概述
4.2环境准备
4.3源码安装标准流程
4.3.1下载并解包源代码包(Tar解包)
4.3.2配置编译参数(./configure)
4.3.3编译源代码
4.3.4安装编译后的程序(make install)
4.3.5验证安装并启动服务
一、Linux 应用程序基础
1.1Linux 应用程序的系统文件构成
Linux 遵循FHS(文件系统层次结构标准),openEuler 24.03 同样遵循,应用不同类型文件分散存放在固定目录,规范如下:
| 普通可执行程序 | /usr/bin | 所有普通用户均可执行 | python3、nginx、tree |
| 服务 / 管理程序 | /usr/sbin | 仅 root 管理员可执行,多为系统工具 | firewalld、networkctl |
| 配置文件 | /etc | 程序参数,修改后重启生效,多程序会自建子目录 | /etc/nginx、/etc/my.cnf.d |
| 日志文件 | /var/log | 记录运行、报错、访问信息,用于排错 | /var/log/nginx/access.log、/var/log/messages |
| 参考文档 | /usr/share/doc/ | 安装说明、手册、更新日志 | /usr/share/doc/nginx/ |
| man 帮助手册 | /usr/share/man/ | 在线帮助文档,man 程序名查看 | man nginx、man rpm |
1.2Linux软件封装类型
| 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执行脚本 | 免编译,自带依赖;跨发行版兼容;安装向导化 | 安装目录不规范;系统包管理器无法管理;卸载麻烦 |
二、RPM软件包管理工具
2.1RPM概述
RPM(RPM Package Manager)是RPM系列Linux系统的底层基础包管理工具,是DNF工具的底层依赖。仅用于管理本地RPM格式安装包,核心特点:不自动解决依赖关系,所有依赖需手动处理。
2.2RPM常用参数
|
-i |
安装软件包 |
全新安装本地rpm软件 |
|
-U |
升级软件包 |
升级已安装软件,无旧版本则直接安装 |
|
-e |
卸载软件包 |
卸载已安装的rpm软件 |
|
-v |
显示详细执行信息 |
搭配安装/升级命令,用于排查报错 |
|
-h |
显示安装进度条 |
直观查看安装进度 |
|
–nodeps |
忽略依赖校验 |
仅测试使用,强制安装/卸载,易导致系统异常 |
|
–force |
强制覆盖安装 |
覆盖同版本软件,修复文件缺失问题 |
2.3RPM常用命令
- 安装软件:rpm -ivh 软件包名.rpm
- 升级软件:rpm -Uvh 软件包名.rpm
- 卸载软件:rpm -e 软件名
- 强制卸载(忽略依赖):rpm -e –nodeps 软件名
- 查询软件是否安装:rpm -qa | grep 软件名
- 查询软件详细信息:rpm -qi 软件名
三、DNF软件包管理器
3.1DNF概述与核心优势
DNF(Dandified YUM)是YUM的下一代升级版本,是openEuler 24.03系统默认的高层包管理工具,基于RPM机制开发,完美解决YUM工具卡顿、依赖解析差的问题,是日常软件管理首选工具。
核心优势:
- 自动依赖解析:智能识别并自动下载安装所有依赖包,无需手动干预
- 多架构适配:完美兼容x86_64、aarch64鲲鹏架构
- 智能镜像加速:自动优选最优下载镜像,提升下载速度
- 模块化管理:支持软件多版本切换,版本隔离互不冲突
- 兼容YUM命令:学习成本低,语法基本通用
- 高效稳定:内存占用低、支持并行下载,适配云原生场景
3.2DNF工作机制
完整工作流程:读取仓库配置 → 加载本地元数据缓存 → 解析软件依赖 → 批量下载并安装软件
- 软件仓库配置目录:/etc/yum.repos.d/(后缀.repo)
- 元数据缓存目录:/var/cache/dnf/(存储软件版本、依赖、下载地址等信息)
3.3DNF实操命令
3.3.1软件查询命令
- dnf list all:列出系统所有已安装+仓库可用软件包
- dnf list 软件名:查询指定软件的安装状态与可用版本
- dnf list available:仅列出仓库中可安装、未安装的软件
- dnf list updates:查询系统可升级的所有软件包
- dnf info 软件名:查看软件详细信息(版本、功能、依赖)
- dnf search 关键词:模糊搜索相关软件包
3.3.2软件安装、升级、卸载
- dnf install -y 软件名:自动确认安装软件,自动解决所有依赖
- dnf update -y 软件名:升级指定软件
- dnf update -y:全系统批量升级所有可更新软件
- dnf remove -y 软件名:卸载指定软件,自动校验系统核心依赖,防止误删
3.3.3仓库与缓存管理
- dnf repolist:列出当前系统已启用的软件仓库
- dnf repolist all:列出所有仓库(启用+禁用)
- dnf makecache:手动生成、更新元数据缓存,提升命令执行速度
- dnf clean all:清理所有缓存文件,解决缓存损坏、下载异常问题
- dnf module list 软件名:查看模块化软件的多版本信息
- dnf check:检测系统软件依赖是否存在异常
3.4RPM与DNF区别
- RPM:底层工具,仅操作本地rpm包,无自动依赖处理,操作风险高,适合精准本地包管理
- DNF:高层工具,联网读取仓库,自动解析、补齐依赖,安全高效,日常运维首选
四、从源代码编译安装程序
4.1源码安装概述
源代码包为软件原始开发代码,无编译封装,所有Linux发行版通用。适合需要最新版本、自定义功能、特殊定制软件的场景,是Linux高级软件安装方式。
优缺点:
版本最新、支持自定义编译参数、跨系统兼容;缺点是操作复杂、需搭建编译环境、手动排查依赖。
4.2环境准备
编译源码必须提前安装编译工具链,否则编译失败:
- gcc/c++:C/C++语言编译工具
- make:批量编译管理工具
核心命令:dnf install -y gcc make
4.3源码安装标准流程
所有开源软件的源代码编译安装都遵循统一的标准流程:解包 → 配置 → 编译 → 安装
4.3.1下载并解包源代码包(Tar解包)
优先从软件官方网站下载源代码包,保证包的完整性和安全性,在 openEuler 24.03 中使用 wget 命令直接下载。
Nginx 官方下载地址:http://nginx.org/download/
#下载源代码包
核心代码:wget https://nginx.org/download/nginx-1.26.3.tar.gz
#解包Nginx源代码包
核心代码:tar -zxvf nginx-1.26.3.tar.gz
#解包完成后,查看生成的目录
核心命令:ls
4.3.2配置编译参数(./configure)
(1)进入源代码目录
cd nginx-1.26.3
(2)执行./configure配置,指定核心参数
./configure –prefix=/usr/local/nginx –with-http_ssl_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。(3)配置成功
4.3.3编译源代码
配置成功后,执行 make 命令进行编译,make 会根据生成的 Makefile 脚本,调用 gcc 编译器将源代码转换为二进制可执行文件。
核心命令:make
4.3.4安装编译后的程序(make install)
编译成功后,执行 make install 命令,将编译好的二进制文件、配置文件、帮助文档等复制到./configure 指定的安装目录(/usr/local/nginx),完成最终的安装。
openEuler 24.03 会自动为安装的程序添加执行权限,无需手动配置。
核心命令:make install
4.3.5验证安装并启动服务
安装完成后,所有 Nginx 的文件都在 /usr/local/nginx 目录中,核心目录遵循 openEuler 的文件规范:
- sbin/:可执行文件目录,nginx 为核心启动程序;
- conf/:配置文件目录,nginx.conf 为核心配置文件;
- logs/:日志文件目录,error.log 和 access.log 为核心日志。
(1)启动 Nginx 服务
核心命令:
01 cd /usr/local/nginx/sbin
02 ./nginx #启动nginx
03 systemctl stop firewalld #关闭防火墙
(2)验证 Nginx 是否启动
核心命令:ps -ef |grep nginx
(3)浏览器验证

4.3.6 卸载nginx
(1)关闭程序
核心命令:nginx -s stop
(2)删除整个目录
核心命令:rm -rf /usr/local/nginx/
