目录

一、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源码安装标准流程

所有开源软件的源代码编译安装都遵循统一的标准流程:解包 → 配置 → 编译 → 安装

  1. 下载并解包源代码包(Tar解包)
  2. 配置编译参数(./configure)
  3. 编译源代码
  4. 安装编译后的程序(make install)
  5. 验证安装并启动服务

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/

Logo

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

更多推荐