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 四大核心能力

  1. 全生命周期管理:数据库路径/var/lib/rpm/,记录每个软件的文件、依赖、版本;
  2. 依赖解析:识别软件依赖关系,打印缺失依赖;
  3. 统一包命名规则,从文件名读出版本、架构信息;
  4. 事务机制:安装升级卸载作为事务,出错自动回滚,保障系统不崩。

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 主要优势

  1. 自动解析、下载全部依赖,不用人工处理;
  2. 支持多个软件仓库,官方源、第三方源;仓库配置目录 /etc/yum.repos.d/*.repo
  3. 智能镜像,自动选速度快的服务器;
  4. 模块化,可以切换软件不同版本;
  5. 命令兼容旧 YUM,上手简单;
  6. 内存占用低,支持并行下载;完美支持 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. 使用场景

  1. 官方二进制包版本老旧,需要软件最新版;
  2. 需要开关特定功能模块(Nginx 开启 SSL、http2);
  3. 鲲鹏 aarch64 等特殊硬件,没有现成 RPM 包;
  4. 需要修改软件源代码,增加自研业务逻辑。

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。

缺点:需要编译环境;系统包管理器无法识别;升级需要重新编译。

卸载源码编译软件:没有卸载脚本,直接删除整个安装目录

Logo

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

更多推荐