【Linux】yum

图片名称

🎉博主首页: 有趣的中国人

🎉专栏首页: Linux

🎉其它专栏: C++初阶 | C++进阶 | 初阶数据结构



在这里插入图片描述

觉得本片文章写的还不错的可以👍点赞👍、🌟收藏🌟、📝评论📝、💖关注💖一下博主,您的支持是我最大的动力,我们共同努力!

文章目录

  • 1. 什么是软件包
  • 2. Linux系统(Centos)的生态
  • 3. yum的相关操作
    • 3.1 查看软件包
    • 3.2 下载命令
    • 3.3 软件的删除命令
    • 3.4 关于yum的软件源
  • 4. 总结(重要)


1. 什么是软件包


  • Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序;
  • 但是这对于非专业人士来说,这既困难又麻烦,于是有些人把一些常用的软件提前编译好, 做成软件包,放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装,就好比 “App” 和 “应用商店” 这样的关系;
  • yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器。主要应用在Fedora, RedHat,Centos等发行版上。

那么软件包是谁提供的呢?

2. Linux系统(Centos)的生态


Linux 系统下通常有3中安装软件的方式:

1. 源代码安装
2. rpm包安装
3. yum安装

👨🏻‍💻源代码安装

有一些软件是开源的,我们可以用这个开源的代码放在我们想要安装的机器上,进行编译,然后就可以下载了,但是这个代码发布的系统可能和你自己所用的系统不太一样(类似于版本),就可能会导致编译报错,因此要解决交叉编译的问题,除此之外,对于某些软件,可能存在依赖关系,要安装有好几个库,所以这很不方便。

👨🏻‍💻rpm包安装

为了解决以上的问题,有一些程序员就会把源代码在不同的环境下编译好,形成rpm包(就相当于是压缩包,类似于tartgz),这就是为什么对于一个软件会有很多不同的版本。但是有的情况下对于某些软件还是要用到其他的库,比如一款软件需要用到C++的库,但是在下载的时候并没有把对应的库安装下来,因此你自己还要解决软件依赖关系的问题。

👨🏻‍💻yum安装

yum就可以解决这个问题,如果某些软件还需要用到其他的库,他就帮你全都下载好,并提供对应的下载链接,供你下载。


那我的机器是怎么知道我要去哪台服务器上找所需要的安装包的呢?

其实,在我们机器的内部一定内置了目标服务器的地址链接。

那为什么会有人买了多台服务器,还帮你把对应的软件都编译好放到服务器中呢?

这就是关于生态的问题了,对于市面上很多的Linux操作系统,他们在本质上没有太大的区别,主要的区别在于生态和社区。对于一款Linux的操作系统,他自身会吸引怎样的客户来使用(比如Centos吸引企业,Ubuntu吸引学生,kali吸引网络安全人员),当客户遇到对应问题时有对应文档的解决方案,这就是生态和社区。

因此对于一些维护Linux内核的人员,他们肯定也知道自己的系统适用于什么样的人群,那么他们就会把自己对应的社区、文档、活跃度维护好来吸引更多的人群来使用自己的系统。

3. yum的相关操作

3.1 查看软件包

通过 「yum list」 命令就可以罗列出当前有哪些软件包,通过管道可以进行筛选,例如:

yum list | grep sl

在这里插入图片描述

3.2 下载命令

输入命令yum install [-y] XXX(不想被询问就输入 -y),进行下载对应的软件,例如我们下载sl软件:

[dsj@alicloud-dsj ~]$ yum install -y sl
Loaded plugins: fastestmirror
You need to be root to perform this command.

因为安装的时候要向系统的目录中写入,所以我们要进入root账户才能安装:

[root@alicloud-dsj dsj]# yum install -y sl

在这里插入图片描述

3.3 软件的删除命令

输入命令yum remove [-y] XXX (不想被询问就输入 -y)就可以删除对应的软件。

[root@alicloud-dsj dsj]# yum remove -y sl

在这里插入图片描述

3.4 关于yum的软件源


我们刚才说过器的内部一定内置了目标服务器的地址链接,所以yum才知道我们要去哪里下载,那这个服务器地址在哪里呢?在这个目录下:/etc/yum.repos.d/

  • 我们可以看一下这个目录中的内容输入命令:ls /etc/yum.repos.d/
[root@alicloud-dsj dsj]# ls /etc/yum.repos.d/
CentOS-Base.repo  epel.repo  epel.repo.rpmnew  epel-testing.repo
  • 可以看到有很多仓库 (repo 是仓库的意思)

  • 我们可以用vim看一下CentOS-Base.repo中的内容,输入命令:

[root@alicloud-dsj dsj]# vim /etc/yum.repos.d/CentOS-Base.repo

在这里插入图片描述

  • 可以看到里面内嵌了很多下载链接,yum在下载的时候就会在仓库中找到下载地址,并构建相应的下载链接进行下载安装。

yum有一个基本软件源叫做Base,里面存放的都是很多用户在使用,并且很稳定的软件;


也有一个软件源叫做epel,里面存放的是一些扩展软件源,可能不太稳定,但是有些软件是存在这里的,例如上面出现的sl,所以我们需要下载它,输入命令yum -y install -y epel-release即可下载epel

4. 总结(重要)


通常在CentOS系统中,软件包管理器yum会使用/etc/yum.repos.d/目录中的配置文件来确定软件包的下载源。这些配置文件通常包含了软件包仓库的链接地址以及其他相关信息。当你使用yum命令安装软件包时,yum会根据这些配置文件中指定的源地址去下载相应的软件包。因此,确保你的系统中有正确的配置文件,并且它们指向了你所需的软件包仓库。


配置文件中存放的是软件包仓库的链接,而这些仓库链接中包含了软件包的下载地址。当你使用yum命令来安装或更新软件包时,yum会根据配置文件中指定的仓库链接去找到对应的软件包下载地址,并从该地址下载软件包到本地系统中进行安装或更新。因此,配置文件中的仓库链接起到了指引yum找到软件包下载地址的作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/832634.shtml

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

相关文章

Golang | Leetcode Golang题解之第71题简化路径

题目: 题解: func simplifyPath(path string) string {stack : []string{}for _, name : range strings.Split(path, "/") {if name ".." {if len(stack) > 0 {stack stack[:len(stack)-1]}} else if name ! "" &am…

在uniapp里面使用 mp-html 并且开启 latex 功能

在uniapp里面使用 mp-html 并且开启 latex 功能 默认情况下 mp-html 是不会开启 latex 功能的, 如果需要开启 latex 功能是需要到代码操作拉取代码自行打包的。 这里说一下 mp-html 里面的 latex 功能是由 https://github.com/rojer95/katex-mini 提供的技术实现,…

计算机系列之数据库技术

13、数据库技术(重点、考点) 1、三级模式-两级映像(考点) 内模式:管理如何存储物理的数据,对应具体物理存储文件。 **模式:**又称为概念模式,就是我们通常使用的基本表&#xff0c…

每日算法-java

题目来自蓝桥云 // 这是一个Java程序,用于解决最长不下降子序列问题。 // 问题描述:给定一个整数序列,找到最长的子序列,使得这个子序列是不下降的(即相邻的元素不严格递减)。 // 程序使用了动态规划的方法…

【C语言】整数,浮点数数据在内存中的存储

Tiny Spark get dazzling some day. 目录 1. 整数在内存中的存储1.1 原码、反码、补码1.1 大小端存储1.2.1 字节序分类1.2.2 判断字节序 2. 浮点数在内存中的存储2.1 浮点数的存储形式2.2 浮点数的 “ 存 ”2.2.1 S2.2.2 E2.2.3 F 2.3 浮点数的 “ 取 ”2.3.1 S2.3.2 E、F 3. 浮…

读取打包到JAR中的文件:常见问题与解决方案(文件在但是报错not find)

读取打包到JAR中的文件:常见问题与解决方案 喝淡酒的时候,宜读李清照;喝甜酒时,宜读柳永;喝烈酒则大歌东坡词。其他如辛弃疾,应饮高梁小口;读放翁,应大口喝大曲;读李后主…

学习c#第26天 面向对象基础之类与对象

1.类 1.什么是类? 俗话说,“物以类聚,人以群分”。意思是同类的东西经常聚在一起,志同道合 的人相聚成群。前者说物,后者说人。这里以物来进行举例说明[见图]: 水果超市,所有同类的水果摆放在一起&#xf…

PHP 框架安全:ThinkPHP 序列 漏洞测试.

什么是 ThinkPHP 框架. ThinkPHP 是一个流行的国内 PHP 框架,它提供了一套完整的安全措施来帮助开发者构建安全可靠的 web 应用程序。ThinkPHP 本身不断更新和改进,以应对新的安全威胁和漏洞。 ThinkPHP 框架的安全特性: (1) 输入过滤和验证…

【go项目01_学习记录05】

学习记录 1 依赖管理 Go Modules1.1 弃用 $GOPATH1.2 Go Modules 日常使用1.2.1 初始化生成go.mod文件1.2.2 Go Proxy代理1.2.3 go.mod文件查看1.2.4 go.sum文件查看1.2.5 indirect 含义1.2.6 go mod tidy 命令1.2.7 清空 Go Modules 缓存1.2.8 下载依赖1.2.9 所有 Go Modules …

[qnx] 通过zcu104 SD卡更新qnx镜像的步骤

0. 概述 本文演示如果给Xlinx zcu104开发板刷入自定义的qnx镜像 1.将拨码开关设置为SD卡启动 如下图所示,将1拨到On,2,3,4拨到Off,即为通过SD启动。 2.准备SD卡中的内容 首先需要将SD格式化为FAT32的(如果已经是FAT32格式,则…

网络安全之OSI七层模型详解

OSI七层模型分为控制层(前三层)和数据层(后四层)。从第七层到一层为; 应用层(7)接收数据 表示层(6)将数据翻译为机器语言 会话层(5)建立虚连接…

C++证道之路第十八章探讨C++新标准

一、复习前面介绍过的C11新功能 1、新类型 C11新增了类型long long 和unsigned long long 新增了类型char16_t 和char32_t 2、统一的初始化 C11扩大了用大括号括起的列表(初始化列表)的使用范围,使其可以用于所有内置类型和用户定义的类…

可编程 IP 新星 Story Protocol 何以引领链上文艺复兴浪潮?

当前,随着 Web3 行业发展进入全新阶段,与生成式人工智能(AIGC)技术融合正在创造潜力新星项目。也是目前的互联网生态下,任何普通民众都有权利创作高质量的音乐、艺术、散文和视频内容,带来了用户生成内容&a…

算法(C++

题目:螺旋矩阵(59. 螺旋矩阵 II - 力扣(LeetCode)) 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入&am…

Vue进阶之Vue项目实战(二)

Vue项目实战 构建基础框架路由 项目( v1.0,base-app-layer)导航 router物料编排选型 插件化插件化平时写代码场景 配置器开发 构建基础框架 路由 路由分类: memoryHistory:内存路由,路由信息记录在内存中&#xff0…

解决github的remote rejected|git存储库的推送保护

前言 git存储库的推送保护。当你试图推送代码到GitHub仓库时,由于存在与主分支(master)相关的仓库规则违规行为,推送会被拒绝了。这种保护机制帮助确保只有经过授权和符合规定的代码才能被合并到主分支,从而保护了主分…

Unreal Engine插件打包技巧

打开UE工程,点击编辑,选择插件,点击"打包"按钮,选择输出目录UE4.26版本打包提示需要VS2017问题解决 1)用记事本打开文件【UE4对应版本安装目录\Epic Games\UE_4.26\Engine\Build\BatchFiles\RunUAT.bat】 2&…

Linux网络部分——DNS域名解析服务

目录 1. 域名结构 2. 系统根据域名查找IP地址的过程 3.DNS域名解析方式 4.DNS域名解析的工作原理【☆】 5.域名解析查询方式 6.搭建主从DNS域名服务器 ①初始化操作主服务器和从服务器,安装BIND软件 ②修改主服务器的主配置文件、区域配置文件、区域数…

pyside6的调色板QPalette的简单应用

使用调色板需要先导入:from PySide6.QtGui import QPalette 调色板QPalette的源代码: class QPalette(Shiboken.Object):class ColorGroup(enum.Enum):Active : QPalette.ColorGroup ... # 0x0Normal : QPalette.ColorGrou…

鸿蒙内核源码分析(消息队列篇) | 进程间如何异步传递大数据

基本概念 队列又称消息队列,是一种常用于任务间通信的数据结构。队列接收来自任务或中断的不固定长度消息,并根据不同的接口确定传递的消息是否存放在队列空间中。 任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务…