当前位置: 首页 > news >正文

一文理清 Linux 软件管理核心知识:从程序组成到包管理工具

一文理清 Linux 软件管理核心知识:从程序组成到包管理工具

Linux 系统的软件管理是运维和使用的基础,涉及命令与应用程序的区分、软件组成结构、包管理工具(rpm、yum、dnf)等核心内容。以下从核心区别、组成结构到具体工具操作,系统梳理这些知识点

一、Linux 命令与应用程序:到底有啥不一样?

很多人会混淆 “命令” 和 “应用程序”,其实两者在本质、存放位置、使用方式上有明确区别,尤其要注意内部命令、Linux 命令与应用程序的差异:

类别核心特点存放路径安装时机执行格式界面形式
内部命令属于 Shell 解释器内置,如 exit、cd 等无独立文件(嵌入 Shell)随 Shell 安装固定(命令 + 选项 + 参数)仅字符界面
Linux 命令独立可执行文件,功能基础,依赖系统/bin、/sbin操作系统安装时自带固定(命令 + 选项 + 参数)仅字符界面
应用程序功能独立,可视为 “软件”,可能依赖系统但更灵活/usr/bin、/usr/sbin、/usr/local/bin 等操作系统外另行安装无固定格式(开发者定义)可能有图形界面,形式多样

注:部分应用程序的执行文件支持命令式运行(如程序命令),这是两者容易混淆的原因之一

二、一个完整的 Linux 应用程序,通常由哪些部分组成?

典型应用程序包含 6 个核心组成部分,每个部分有固定的存放路径和作用,掌握这些能快速定位程序相关文件:

组成部分功能作用默认存放路径权限特点
普通可执行程序文件供普通用户执行的主程序/usr/bin/普通用户有权限执行
服务器 / 管理程序文件系统服务或管理类程序,需管理员操作/usr/sbin/仅管理员(root)有权限执行
配置文件程序运行的参数配置,多文件时会创建同名子目录/etc/(或 /etc/ 程序名 /)可被管理员修改
日志文件记录程序运行状态、错误信息等/var/log/按程序生成对应日志文件
参考文档数据程序说明、帮助文档、示例等/usr/share/doc/提供使用参考
man 手册程序及配置文件的帮助手册(man 命令可调用)/usr/share/man/支持命令行查询帮助

三、Linux 软件包有哪些常见类型?各适用于什么系统?

软件包是程序分发的主要形式,不同 Linux 发行版采用不同的封装格式,常见的有 3 类:

软件包类型扩展名适用系统核心特点
rpm 软件包.rpm基于 RPM 机制的系统(RHEL、Fedora、SUSE 等)依赖性强,需解决依赖关系才能安装
DEB 软件包.deb基于 DPKG 机制的系统(Debian、Ubuntu 等)依赖管理较灵活
源代码软件包.tar.gz、.tar.bz2所有 Linux 系统(需编译安装)需手动编译,可定制化程度高

四、rpm 包管理:从查询到安装卸载的全操作

rpm 是 RPM 系系统的基础包管理工具,支持查询、安装、卸载、更新等操作,命令选项丰富,需重点掌握:

1. rpm 包命名格式:看懂每个部分的含义

coreutils-8.30-4.el7.x86_64.rpm为例:

  • coreutils:软件名称
  • 8.30-4:版本号(主版本。次版本 - 修订号)
  • .el7:适配的发行版(这里指 RHEL 7 系列)
  • x86_64:处理器架构(noarch表示不区分架构)
2. rpm 核心命令:按功能分类整理
操作类型命令及选项作用说明示例
查询已安装rpm -qa列出所有已安装的 rpm 包rpm -qa python3-bind
rpm -qi 软件名查看已安装包的详细信息(版本、描述等)rpm -qi python3-bind
rpm -ql 软件名列出已安装包的所有文件和目录rpm -ql python3-bind
rpm -qf 文件/目录查看指定文件 / 目录来自哪个已安装包rpm -qf /usr/bin/ls
rpm -q 软件名检查软件是否已安装rpm -q vsftpd
查询未安装rpm -qpi 包路径查看未安装包的详细信息(需指定完整路径)rpm -qpi /mnt/Packages/vsftpd.rpm
rpm -qpl 包路径列出未安装包的所有目标文件 / 目录rpm -qpl /mnt/Packages/vsftpd.rpm
安装rpm -ivh 包路径安装软件包(-i 安装,-v 详细,-h 显示进度)rpm -ivh /mnt/Packages/vsftpd.rpm
卸载rpm -e 软件名卸载软件包(需输入软件名,而非包路径)rpm -e vsftpd
更新rpm -Uvh 包路径更新软件包(无旧版本则安装)rpm -Uvh /mnt/Packages/vsftpd-1.2.3.rpm
rpm -Fvh 包路径更新软件包(无旧版本则不安装)rpm -Fvh /mnt/Packages/vsftpd-1.2.3.rpm
强制操作--force强制安装 / 更新(忽略冲突)rpm -ivh --force 包路径
忽略依赖--nodeps忽略依赖关系(不推荐,可能导致程序异常)rpm -e --nodeps 软件名

五、yum 仓库:简化依赖管理的包管理工具

yum 基于 rpm,能自动解决依赖关系,核心是通过仓库配置文件定位软件源,操作更简单:

1. yum 仓库配置:必须知道的关键点
  • 仓库配置文件必须放在/etc/yum.repos.d/目录下,扩展名为.repo

  • 配置文件格式(以server.repo为例):

    [a]          # 仓库标识(唯一)
    name=aa      # 仓库名称(自定义)
    baseurl=file:///mnt/  # 软件源路径(本地目录、HTTP、FTP等)
    enabled=1    # 是否启用(1启用,0禁用)
    gpgcheck=0   # 是否校验GPG签名(0不校验,1校验)
    
2. yum 常用命令:比 rpm 更简单直接
操作命令说明
安装软件包yum -y install 软件名-y自动确认,无需手动输入 yes
卸载软件包yum -y remove 软件名会自动卸载依赖(谨慎使用,可能删关键包)
安装软件包组yum -y groupinstall "包组名""Development Tools"(开发工具组)
卸载软件包组yum -y groupremove "包组名"卸载整个包组
列出可用软件包yum list显示已安装和可安装的所有包
列出可用软件包组yum group list显示已安装和可安装的所有包组
更新软件包yum update 软件名不指定软件名则更新系统所有包(谨慎)

六、dnf:yum 的升级版本,用法基本一致

dnf 是新一代包管理工具,在 RHEL 8+、Fedora 等系统中替代 yum,核心命令与 yum 完全兼容:

  • 安装:dnf -y install 软件名
  • 卸载:dnf -y remove 软件名
  • 更新:dnf -y update 软件名

总结:Linux 软件管理的核心逻辑

Linux 软件管理围绕 “包” 展开,从底层的 rpm(负责单个包的操作)到上层的 yum/dnf(解决依赖,简化操作),再到程序本身的组成结构(文件存放路径、配置与日志位置),掌握这些能高效管理系统软件。关键是理解不同工具的定位:rpm 适合精细化操作,yum/dnf 适合日常依赖管理,而清楚程序组成则能快速定位配置文件、日志等关键资源,为系统维护打下基础

http://www.lryc.cn/news/602305.html

相关文章:

  • Java面试宝典:MySQL8新特性
  • shell学习从入门到精通(第二部分)
  • 机器学习sklearn:决策树的参数、属性、接口
  • nccl中__syncthreads的作用及例子 (来自deepseek)
  • 135端口与WMI攻防全解析
  • 网络安全基础知识【4】
  • python中类变量 __slots__ 解析
  • 5190 - 提高:DFS序和欧拉序:树上操作(区域修改1)
  • 排序算法 (Sorting Algorithms)-JS示例
  • AI原生应用:从人机关系重构到数字空间革命
  • RF随机森林分类预测+特征贡献SHAP分析,通过特征贡献分析增强模型透明度,Matlab代码实现,引入SHAP方法打破黑箱限制,提供全局及局部双重解释视角
  • 力扣7:整数反转
  • OCR 赋能合同抽取:不良资产管理公司的效率加速器
  • Kafka 顺序消费实现与优化策略
  • 数据结构之顺序表链表栈
  • 【Git】Linux-ubuntu 22.04 初步认识 -> 安装 -> 基础操作
  • 图片PDF识别工具:扫描PDF文件批量OCR区域图识别改名,识别大量PDF区域内容一次性改名
  • 基于LSTM和GRU的上海空气质量预测研究
  • 图片上传 el+node后端+数据库
  • 如何用VUE实现用户发呆检测?
  • Android通知(Notification)全面解析:从基础到高级应用
  • 【前端】解决Vue3+Pinia中Tab切换与滚动加载数据状态异常问题
  • 05 OpenCV--图像预处理之图像轮廓、直方图均衡化、模板匹配、霍夫变化、图像亮度变化、形态学变化
  • 数据结构:下三角矩阵(Lower Triangular Matrix)
  • MySQL SQL性能优化与慢查询分析实战指南:新手DBA成长之路
  • Eigen 中矩阵的拼接(Concatenation)与 分块(Block Access)操作使用详解和示例演示
  • 简明量子态密度矩阵理论知识点总结
  • 搜索二维矩阵Ⅱ C++
  • 【LeetCode】算法详解#10 ---搜索二维矩阵II
  • 秩为1的矩阵的特征和性质