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.pswp.cn/pingmian/93958.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开发指南】飞凌i.MX9352核心板开发过程中的常见问题及排查思路

飞凌嵌入式作为NXP金牌合作伙伴,已基于i.MX系列应用处理器推出了多款嵌入式主控产品,除了最新发布的i.MX95xx系列核心板外,同为i.MX9系的i.MX93xx系列核心板也已上市多年并获得了众多客户的认可和选择。在长期的技术支持服务过程中&#xff0…

Windows应急响应一般思路(二)

进程排查 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础 无论是在Windows系统还是Linux系统中,主机在感染恶意程序后,恶意程序都会启动相应的进程&am…

FFmpeg03:多媒体文件处理基础

日志系统 #include <libavutil/log.h>av_log_set_level(AV_LOG_DEBUG)av_log(NULL, AV_LOG_INFO, “…%s\n”, op) 常用日志级别 AV_LOG_ERROR AV_LOG_WARNING AV_LOG_INFO Demo log.cpp #include <iostream> extern "C" { #include <libavutil/log.h…

【每天一个知识点】AIOps 与自动化管理

一、AIOps 的内涵AIOps&#xff08;Artificial Intelligence for IT Operations&#xff09;&#xff1a;指将人工智能、大数据分析和机器学习技术应用于 IT 运维管理中。主要目标是&#xff1a;利用智能算法对云平台、网络、应用和日志等海量运维数据进行实时分析&#xff0c;…

ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video

ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video 解决办法 iOS 上对保存到相册的视频存在某种格式和分辨率上的限制&#xff0c;建议先自查看下视频生成的参数&#xff0c;可以先试试苹果自带浏览器 safari 上能否播放该视频。 如果不能播放&#xff0c;证明 io…

Vue基础(③父子组件)

房子&#xff08;父组件&#xff09;包含窗户和门&#xff08;子组件&#xff09; 窗户和门&#xff08;子组件&#xff09;是房子&#xff08;父组件&#xff09;的一部分父组件<!-- 父组件&#xff1a;比如叫 Home.vue --> <template><div><h1>这是父…

AI领域的语义空间是什么?

写在前面&#xff1a;本文将从简单的二维空间来逐渐展开问题&#xff0c;带您理解语义空间。距离和体型&#xff1a;这里尝试用距离和体型这两个尺度来理解语义空间&#xff0c;先说的是低维情况&#xff0c;后面在尝试理解高维的情况。比如&#xff0c;在二维空间的x,y坐标系&…

排序---插入排序

基本思想对于插入排序而言&#xff0c;它的基本思想就是往已经排好序的序列里边插入数据。思想类似于玩扑克牌。接下来的排序都是基于下边的这个数组。int a[ ] { 5 , 3 , 9 , 6 , 2 , 4 , 7 , 1 , 8 };直接插入排序我们想要将这个数组排成升序&#xff0c;在最一开始&#xf…

Java性能优化实战(四):IO与网络优化的4个关键方向

IO与网络操作是Java应用性能的常见瓶颈&#xff0c;尤其在高并发场景下&#xff0c;低效的IO处理会导致响应缓慢、资源浪费等问题。本文将聚焦IO与网络优化的四个核心方向&#xff0c;通过真实案例、代码对比和性能数据&#xff0c;详解如何提升IO效率、减少网络传输开销&#…

对齐Wireshark和USRP捕获信号的波形

一、USRP信号 USRP捕获信号的波形如下&#xff1a; 放大后&#xff1a; 100ms 10ms 1ms 100us 10us 1us 二、波形分析 2.1 时间分辨率 采样率61.44MHz, 对应时间分辨率为1/61.44us0.01627us16.27ns。 这时间分辨率够用了&#xff0c;数据包长度为1到20us&#xff1a; 2.2 W…

2025年加密软件技术深度分析:从原理到企业级应用实践

一、加密技术基础与分类加密技术作为信息安全的核心基石&#xff0c;其基本原理是通过特定算法将明文数据转换为不可读的密文&#xff0c;只有持有正确密钥的授权用户才能解密还原。2025年主流的加密技术可分为三大类&#xff1a;‌对称加密‌&#xff1a;使用相同密钥进行加密…

打工人日报20250822

打工人日报20250822 对自己负责&#xff0c;可以是换一个角度看待自己不喜欢的工作&#xff0c;转换一个角度&#xff0c;从中找到自己感兴趣的点 真的非常不想计算声场的数据 啊啊啊啊啊 技术 STM32烧录问题 STM32 代码烧录失败&#xff1a;Error: Flash Download failed …

消费盲返模式:重构快消行业营销生态的破局之道与风险防控指南

一、模式爆发&#xff1a;快消行业的新增长引擎在流量成本攀升、用户留存困难的商业环境下&#xff0c;消费盲返模式正成为零售领域的一匹黑马。其核心逻辑在于通过"消费即投资"的机制设计&#xff0c;将每笔交易转化为后续100笔订单的激励源&#xff0c;形成独特的&…

STM32-FreeRTOS快速入门指南(上)

第一章 FreeRTOS系统配置 1. FreeRTOSConfig.h文件 针对 FreeRTOSConfig.h 文件&#xff0c;在 FreeRTOS 官方的在线文档中有详细的说明&#xff0c;网址为&#xff1a; https://www.freertos.org/a00110.html FreeRTOS 使用 FreeRTOSConfig.h 文件进行配置和裁剪。 FreeRTOSCo…

南溪智融双碳示范基地建筑设备管理系统 + 智能照明系统调试完成:筑牢 “绿色智能” 运营基石

南溪智融双碳示范基地作为聚焦 “双碳” 目标的标杆项目&#xff0c;其建筑设备管理系统与智能照明系统的调试完成&#xff0c;标志着基地在 “设备高效运维、能源精准管控、低碳场景落地” 方面迈出关键一步。两大系统深度契合示范基地 “以技术赋能双碳” 的核心定位&#xf…

c++的可扩展性方法

在C编码中&#xff0c;"方便扩展"通常指的是代码设计具有良好的**可维护性、可重用性和灵活性**&#xff0c;能够在不修改原有代码或仅少量修改的情况下&#xff0c;轻松添加新功能、支持新类型或适应新需求。以下是一些典型的、体现“方便扩展”思想的C编程案例&…

加速车辆开发 风丘道路载荷数据采集 (RLDA) 测试方案

一、背景 整车厂在汽车上市前&#xff0c;了解产品所能承受的载荷是非常重要的&#xff0c;因此需进行道路载荷数据采集&#xff08;RLDA&#xff09;测试。通过获得车辆在实际试验场或公路道路中行驶的载荷信息来为整车台架道路模拟试验提供目标信号输入&#xff0c;以及为用于…

大模型0基础开发入门与实践:第4章 “脑细胞”的模拟:神经网络与深度学习入门

第4章 “脑细胞”的模拟&#xff1a;神经网络与深度学习入门 1. 引言 在上一章&#xff0c;我们像一位侦探&#xff0c;学会了使用决策树这样的工具&#xff0c;从清晰的线索&#xff08;花瓣、花萼的尺寸&#xff09;中推理出确定的结论&#xff08;鸢尾花的种类&#xff09;。…

微服务之间的调用关系如何处理,才能防止循环依赖

在微服务架构中&#xff0c;循环依赖是常见的设计问题&#xff0c;可能导致系统部署失败、启动顺序冲突、故障排查困难等问题。处理循环依赖的核心原则是通过架构设计打破依赖闭环&#xff0c;以下是具体的解决方案&#xff1a; 1. 重新划分服务边界&#xff08;根本解决&#…

粗粮厂的基于flink的汽车实时数仓解决方案

基于flink的实时数仓解决方案1 背景2 业务模型1 业务框架2 难点痛点3技术选型1 计算引擎2 中间存储3 查询引擎4 flink计算架构设计1 纯实时架构2 纯实时定期补充离线数据3 纯实时定期刷新过期binlog4 lamdba 分字段更新 历史过期数据刷新5 痛点解决delta joinmerge-enginehol…