目录

一,Linux应用程序基础

1,Linux命令与应用程序的核心区别

2,Linux应用程序的系统文件构成

3,Linux软件包的四大封装类型及核心特性

二,RPM软件包管理工具

1,RPM概述

2,RPM命令的全流程实操

三,DNF软件包管理器

1,DNF概述与工作机制

2,DNF命令全流程实操

四,从源代码编译安装程序

1,源代码编译安装概述

2,源代码编译安装的标准流程

3,三种应用程序管理方式的对比与场景选择


一,Linux应用程序基础

1,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)等多种形式

2,Linux应用程序的系统文件构成

1,普通可执行程序放在/usr/bin,普通用户都可以运行;

2,服务与管理类程序放在/usr/sbin,仅root管理员能够执行。

3,配置文件主要存放在/etc目录,修改后需要重启程序才能生效。

4,日志文件位于/var/log,记录运行状态、报错与访问信息,可用于故障排查。

5,参考文档存放在/usr/share/doc,

6,man帮助手册放在/usr/share/man,可以使用man命令查看程序用法。

使用rpm -ql 软件名命令,能够查看已安装软件包的全部文件分布。

/etc/dnf/protected.d/yum.conf    # 配置文件
/etc/yum.conf                    # 核心配置文件
/etc/yum/pluginconf.d            # 插件配置子目录
/usr/bin/yum                     # 普通可执行文件
/usr/share/man/man8/yum.8.gz     # man手册页

3,Linux软件包的四大封装类型及核心特性

封装类型 文件后缀 核心特性 适用Linux发行版 核心管理工具 优势 劣势
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软件包管理工具

1,RPM概述

1,RPM即RPM软件包管理器,由Red Hat首创,是openEuler、RHEL等RPM系Linux发行版的核心包管理工具,奠定了Linux二进制包管理的行业标准。

2,RPM有四大核心优势:一是依托数据库实现软件全生命周期管理,可追踪软件相关信息;二是能够自动解析软件依赖;三是软件包采用统一标准化命名;四是安装、升级、卸载属于事务性操作,出错可自动回滚,保障系统稳定。

3,RPM包文件名有固定标准格式:软件名-版本号-发布次数.操作系统版本.硬件架构.rpm。
以lynx-2.8.9-20.oe2403.x86_64.rpm举例,软件名代表程序名称;版本号分为主版本、次版本、修订号,分别对应大更新、新增功能、bug修复;发布次数是该版本在发行版里的构建次数;操作系统版本标识适配的系统;硬件架构代表兼容的CPU类型,noarch则是跨架构通用。

2,RPM命令的全流程实操

1,rpm核心选项: -q 用于查询、 -V 用于验证; -i 安装、 -U 升级(不存在就直接安装)、 -F 更新(不存在则不安装); -e 卸载。可以执行 man rpm 查看全部参数。
查询是rpm最常用功能,分为查询已安装包和未安装包,已安装包用 rpm -q ,未安装包用 rpm -qp

2,查询RPM软件包信息

命令组合 功能说明 实战案例  输出效果 
rpm -q 软件名  查询指定软件是否已安装  rpm -q wget  已安装:输出包名;未安装:提示“未安装软件包 wget” 
rpm -qa 列出系统中所有已安装的RPM软件包  rpm -qa  逐行输出所有包名,数量可达数千个 
rpm -qa | grep -i 关键词  模糊查询含指定关键词的软件包(-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/nginx 输出该文件所属的软件包名

3,核心选项说明,rpm安装、升级、卸载有多个核心选项: -i 用于全新安装RPM包,常用组合 -ivh ; -U 升级软件包,软件未安装时直接安装,常用 -Uvh ; -F 仅更新已存在的软件包,未安装则不处理,常用 -Fvh ; -e 用来卸载软件包。
子选项中 # 可以展示安装进度, -h 显示安装相关详细信息,二者常和 -i/-U/-F 搭配使用,便于查看过程、排查错误。 --force 用于强制安装, --nodeps 会忽略依赖关系,这两个属于高危强制参数,只适合学习调试场景,生产环境不能使用

安装RPM包
[root@localhost ~]# rpm -ivh /media/cdrom/Packages/wget-1.21.4-1.oe2403.x86_64.rpm
# 验证安装
[root@localhost ~]# which wget

# 升级RPM包
[root@localhost ~]# rpm -Uvh /media/cdrom/Packages/wget-新版本.oe2403.x86_64.rpm

# 卸载RPM包
[root@localhost ~]# rpm -e wge

4,DNF的核心工作机制

1. 软件仓库:是软件来源,分为官方仓库和第三方仓库;仓库配置文件存放在 /etc/yum.repos.d/ ,后缀为 .repo ,会被DNF自动识别。

2. 元数据:记录仓库内软件包名称、版本、依赖等信息,DNF会缓存到 /var/cache/dnf/ ,默认有过期时间,到期自动更新,提升查询安装速度。

3. 仓库配置文件:采用段式配置,一个仓库对应一段配置,可自行配置第三方仓库。可通过 cat /etc/yum.repos.d/openEuler-extras.repo 查看示例配置。

5,软件包查询

dnf list all :列出全部已安装和仓库可使用的软件包

dnf list 软件名 :查看指定软件安装状态与可用版本

dnf list available :只列出仓库里尚未安装的软件包

dnf list updates :列出能够升级的软件包

dnf info 软件名 :查看软件详细信息,包含版本、大小、依赖等

dnf search 关键词 :根据名称或描述检索相关软件包

四,从源代码编译安装程序

1,源代码编译安装概述

源代码编译安装,是在本地系统上将程序源码翻译成二进制可执行文件,再部署到系统的软件安装方式,区别于rpm、dnf这类直接使用预编译包的安装方式,常用于Linux开源软件部署 。
 
一、核心流程
 
1. 准备阶段:下载源码包(tar压缩包/git拉取),提前装好编译工具(gcc、make)与各类开发依赖包,解压源码并进入源码目录

2. 配置  ./configure :检测系统编译器、依赖库、系统特性;可自定义安装路径、开启/关闭功能模块;自动生成 Makefile 编译规则文件

3. 编译  make :读取Makefile,调用编译器把源码编译、链接成可执行程序/库文件;可 make -jN 多核加速编译

4. 安装  make install :把编译好的二进制程序、配置文件、手册等复制到指定系统目录(默认一般 /usr/local )

2,源代码编译安装的标准流程

1. 获取源码
下载源码压缩包(一般 .tar.gz / .tar.bz2 ),或者 git clone 拉取源码。

2. 解压源码包
 tar -zxvf 源码包名.tar.gz
cd 源码目录

3. 配置 ./configure
 ./configure [可选参数,如--prefix=/usr/local/xxx 指定安装路径]
 
 4. 编译 make

直接执行make install 
 
5. 安装 make install

6.验证与启动步骤

1.启动Nginx   

cd /usr/local/nginx/sbin
./nginx                       无输出代表启动成功

2.查看进程验证

ps -ef | grep nginx

出现  nginx: master process (主进程)和  nginx: worker process (工作进程),说明服务正常运行;带 grep 的那一行是查询命令本身,不属于nginx业务进程。
 
3. 浏览器访问验证
客户端浏览器访问  http://服务器IP ,能打开Nginx默认欢迎页面,代表Web服务可正常使用。

3,三种应用程序管理方式的对比与场景选择

RPM:本地包,不自动处理依赖,离线少量安装

DNF:仓库管理,自动解决依赖,生产常规首选

源码编译:自主编译,灵活定制,适合特殊版本和个性化需求

Logo

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

更多推荐