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

Linux 软件包安装和管理的相关操作及使用总结(未完成)

一、基础知识

1、软件包分类

  • 源码包(Source Package):包含软件的源代码文件、编译指令和配置文件。需要用户自行编译安装,过程相对复杂,但灵活性高,可以定制安装选项。文件格式通常为.tar.gz、.tar.bz2等压缩格式。软件运行所有的文件都会在同一个包文件里面
  • 二进制包(Binary Package):包含已经编译好的可执行文件、库文件、配置文件、帮助文件等,用户可以直接安装使用。常见的二进制包格式有RPM包(Red Hat Package Manager)、DEB包(Debian Package)等。rpm包主要在Red Hat、Fedora、CentOS等Linux发行版中使用。包名通常包含软件名称、版本号、发布号、适用的Linux发行版标识和架构标识等信息。deb包主要在Debian、Ubuntu等Linux发行版中使用。软件运行所有的文件分别放到相互依赖的多个包文件里面。

2、RedHat/CentOS 系列包管理工具

  • yum:CentOS和Red Hat Enterprise Linux(RHEL)等发行版中的软件包管理工具,同样支持自动处理依赖关系和软件包的搜索、安装、升级等操作。
  • dnf:Fedora等发行版中的新一代软件包管理工具,旨在替代yum,提供更快的软件包安装速度和更丰富的功能。
  • rpm:负责rpm包的安装、查询、升级、卸载、验证等操作,仅处理单个rpm包,不自动处理依赖关系 ,依赖缺失会产生报错。

3、Ubuntu/Debian系列包管理工具

  • apt:用于Debian及其衍生版如Ubuntu中的软件包管理,能够自动处理依赖关系,并提供丰富的软件包仓库。
  • dpkg:底层包管理工具,直接操作 deb 包,可以安装,删除和构建软件包,但无法自动下载和安装软件包或其依赖项。

二、yum基础知识及使用

1、基础知识

  • yum 最初是为基于 RPM 的 Linux 发行版(如 Fedora、CentOS、RHEL 等)设计的。它起源于 Yellowdog Linux 发行版,后来经过修改和扩展,成为许多主流 Linux 发行版中不可或缺的一部分。
  • dnf 是 Fedora 项目开发的一个新的包管理器,相较于 yum ,dns 提供了更加快速和灵活的包管理体验。它支持并行下载和安装软件包,从而减少了总体等待时间。此外还提供了更加丰富的命令行选项和输出格式,使得用户可以更轻松地获取所需的信息,已经成为 Fedora 和一些其他基于 RPM 的 Linux 发行版的默认包管理器。而且 dnf 还保留了和 yum 的兼容性,配置也是通用的,所以在 Rocky linux9 里面,他们的操作基本上是一样的。

2、工作原理

yum、dnf 均基于 c/s 模式,服务端存放 rpm 包和包的元数据库,客户端访问 yum 服务端进行查询和安装。先在 yum 服务器上创建 yum repository(仓库),在仓库中事先存储了众多 rpm 包,以及包的相关的元数据文件(放置于特定目录 repodata 下),当 yum 客户端利用 yum/dnf 工具进行安装包时,会自动下载 repodata 中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

3、客户端环境配置

yum 客户端配置文件

  • /etc/yum.conf:为所有仓库提供公共配置
  • /etc/yum.repos.d/*.repo:为每个仓库的提供配置文件

基础命令

#查看帮助
man 5 yum.conf#获取软件源信息
yum makecache#清理软件源信息
yum clean all#查看仓库的信息
yum repolist#查看仓库的更多信息
yum repolist -v

4、配置解析

全局配置:/etc/yum.conf

#安装包前要做包的合法和完整性校验
gpgcheck=1#同时可以安装3个包,最小值为2,如设为0或1,为不限制
installonly_limit=3#删除包时,是否将不再使用的包删除
clean_requirements_on_remove=True#升级时,自动选择安装最新版,即使缺少包的依赖
best=True#跳过不可用的
skip_if_unavailable=False

repo仓库配置:/etc/yum.repos.d/*.repo

[baseos]#仓库名称
name=Rocky Linux $releasever - BaseOS#仓库地址列表,多个baseurl指向的地址
#mirrorlist=https://mirrors.rockylinux.org/mirrorlistarch=$basearch&repo=BaseOS-$releasever$rltype#仓库地址
baseurl=https://mirrors.aliyun.com/rockylinux/$releasever/BaseOS/$basearch/os/#是否对包进行校验,默认值为1
gpgcheck=1#是否启用,默认值为1,启用
enabled=1#rocky-9中新增配置,默认值false,附加在mirrorlist之后,便于仓库收集客户端信息
countme=1#rocky-9中新增配置,metadata 过期时间
metadata_expire=6h#校验key的地址
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9

baseurl 有多种写法,支持多种协议

baseurl=file:///cdrom/Centos-7.6/
baseurl=https://mirrors.aliyun.com/rockylinux/9.6/AppStream/x86_64/os/
baseurl=http://mirrors.aliyun.com/rockylinux/9.6/AppStream/x86_64/os/
baseurl=ftp://10.0.0.15/

5、配置yum源

#更新yum源
yum makecache#查看yum源
yum repolist查看yum源信息
yum repolist -v查看指定yum源信息
yum repolist --repoid=aliyun -v

6、国内yum源地址(RockyLinux)

  • 阿里云:https://mirrors.aliyun.com/rockylinux/
  • 中国科学技术大学:http://mirrors.ustc.edu.cn/rocky/
  • 南京大学:https://mirrors.nju.edu.cn/rocky/
  • 上海交通大学:https://mirrors.sjtug.sjtu.edu.cn/rocky/
  • 东软信息学院:http://mirrors.neusoft.edu.cn/rocky/

7、镜像挂载+配置本地yum源

挂载本地镜像文件

#新建目录 /mnt/cdrom 用于挂载镜像
mkdir -p /mnt/cdrom#上传 CentOS-7-x86_64-Minimal-2009.iso 文件到服务器 /mnt 目录下
#挂载镜像
mount -o loop /mnt/Rocky-9.4-x86_64-dvd.iso  /mnt/cdrom# 取消挂载
umount /mnt/cdrom

注:在 Linux 中挂载 iso 镜像后,挂载点的磁盘使用率显示100%是正常现象,无需处理。原因是:iso 镜像文件的本质是一个完整的光盘文件系统镜像,包含了所有文件的打包数据,且文件系统大小是固定的(即为镜像文件的大小)。当挂载 iso 时,操作系统会将其识别为一个“只读的虚拟磁盘”,总量就是 iso 文件的大小,且内部没有空闲空间(所有空间都被镜像内容占满)。iso 镜像的设计目的就是“读取内容”(如安装操作系统,提取文件等),而非“写入数据”,所以也无需空闲空间。因此 df -h 等命令会显示该挂载点的磁盘使用率为100%。

配置本地yum源

[cdrom-appstream]
name=cdrom appstream
baseurl=file:///mnt/cdrom/AppStream
gpgcheck=0[cdrom-baseos]
name=cdrom baseos
baseurl=file:///mnt/cdrom/BaseOS/
gpgcheck=0

清除缓存信息并更新yum源

#清除yum源缓存
yum clean all

8、yum常用命令

命令格式:

yum [options] COMMAND

常用子命令:

  • autoremove:卸载包,同时卸载依赖
  • clean:清除本地缓存
  • install:包安装
  • list:列出所有包
  • makecache:重建缓存
  • search:包搜索,包括包名和描述

一般子命令:

  • check-update:检查可用更新
  • downgrade:包降级
  • group:包组相关
  • help:显示帮助信息
  • history:显示history
  • info:显示包相关信息
  • reinstall:重装
  • remove:卸载
  • repolist:显示或解析repo源
  • search:包搜索,包括包名和描述

常用选项:

  • -y:自动回答为 yes

一般选项:

  • -c file:指定配置文件,默认使用/etc/yum.conf
  • -v:显示详细信息
  • -b:尝试在可用包中寻找最匹配的版本
  • --nogpgcheck:不进行包校验
  • --repo repoid:指定repo源
  • --enablerepo repoid:临时启用repo源,可用通配符
  • --disablerepo repoid:临时禁用repo源,可用通配符
  • --nodocs:不安装文档
  • --skip-broken:跳过有问题的包
  • --enable:启用源,配合 configmanager
  • --disable:禁用源,配合 configmanager
  • -x package:排除指定包,可用通配符
  • --downloadonly:只下载,不安装

9、应用示例

#默认显示所有启用的yum源
yum repolist #显示启用的yum源
yum repolist --enable#显示禁用的yum源
yum repolist --disabled#查看所有软件
yum list#查看所有可更新的包
yum list --updates#查看所有以 t 开头的包,包括己安装的和可安装的
yum list --all t*#查看所有可用的包
yum list --available#查看指定软件可用的包
yum list --available telnet#查看所有已安装软件
yum list --installed#查看指定的已安装软件
yum list --installed telnet#查看软件
yum list telnet#指定源查看软件
yum list --repo=aliyun telnet#交互方式安装软件 - 需要输入 y 确认
yum install yum install httpd#直接安装软件 - 无需询问
yum install -y telnet#不安装软件,仅下载软件
yum install telnet --downloadonly --downloaddir=/tmp/#使用本地rpm文件安装
yum localinstall nginx-1.20.1-16.el9_4.1.x86_64.rpm#卸载单个软件
yum remove telnet#卸载多个软件
yum remove telnet httpd#升级指定包
yum update telnet#根据名字检索软件
yum search telnet#查看指定包所依赖的库和程序
yum deplist nginx#查看yum历史命令
yum history#查看跟指定软件相关的历史命令
yum history telnet

http://www.xdnf.cn/news/18381.html

相关文章:

  • 漏洞分析 | Kafka Connect 任意文件读取漏洞(CVE-2025-27817)
  • 如何使用AI大语言模型解决生活中的实际小事情?
  • 【Protues仿真】基于AT89C52单片机的LCD液晶显示屏显示控制
  • 如何在 Axios 中处理多个 baseURL 而不造成混乱
  • portainer-ce汉化版下载
  • 从零开始的云计算生活——第四十九天,长路漫漫,kubernetes模块之持久化存储
  • 拆解本地组策略编辑器 (gpedit.msc) 的界面和功能
  • Kafka消息丢失的场景有哪些
  • ThingsBoard运行linux应用版本
  • FPGA设计中的信号完整性量化与优化:探索高速数字系统的关键路径
  • CVPR 2025 | 哈工大港大DeCLIP:解耦CLIP注意力实现开放词汇感知!
  • 车载中控:汽车的数字大脑与交互核心
  • 【RA-Eco-RA4E2-64PIN-V1.0 开发板】步进电机驱动
  • CISP-PTE之路--14文
  • JavaEE 初阶第二十期:网络编程“通关记”(二)
  • 数字隔离器:新能源系统的安全与效能革命
  • 【GM3568JHF】FPGA+ARM异构开发板 测试命令
  • 从零搭建 React 工程化项目
  • 深入解析鸿蒙 ArkTS 中的 @Local 装饰器
  • 【解决办法】wps的word文档编辑时字体的下方出现灰色的底色如何删除
  • CAM可视化卷积神经网络
  • 深度学习:入门简介
  • AI推理革命:从Sequential Thinking到Agentic AI的演进之路——揭秘大语言模型思维进化的四重奏
  • 上海人工智能实验室开源基于Intern-S1同等技术的轻量化开源多模态推理模型
  • logback-spring.xml 文件
  • 车载 GPS 与手机导航的终极对决:谁在复杂路况下更胜一筹?
  • UE5 将纯蓝图项目转为 C++ 项目
  • MongoDB 完整指南
  • 安全运维过程文档体系规范
  • 如何轻松永久删除 Android 手机上的短信