【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,一经查实,立即删除!

相关文章

Vue.js设计与实现——通过Proxy实现简单的响应式系统

文章内容来源:《Vue.js设计与实现》 —— 当当网 ,作者:霍春阳(HcySunYang) 一、通过 Proxy 实现基本的响应式数据: function Section1 () {// 存储副作用函数的桶const bucket new Set();// 原始数据co…

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…

boost::asio::ip::tcp::resolver async_resolve异步解析

boost::asio::ip::tcp::resolver::async_resolve 是一个异步解析函数&#xff0c;用于将主机名和服务名转换为端点&#xff08;通常是 IP 地址和端口号&#xff09;。 以下是一个简单的使用示例&#xff1a; #include <boost/asio.hpp> #include <iostream>void …

PCB机打孔机程序(二)

/************************************/ void main(void) { aabb0; P0M00; P0M10; P1M00X80; //1000 0000 P1.7开漏 P1M10X80; //1000 0000 P2…

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

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

计算机系列之数据库技术

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

每日算法-java

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

【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. 浮…

C++学习第十一天(模版进阶)

1、非类型模版参数 模版参数分为类类型形参和非类型形参 类类型形参&#xff1a;出现在参数列表中&#xff0c;跟在class或者typename之类的参数类型名称 非类型形参&#xff1a;就是用一个常量作为类&#xff08;函数&#xff09;模版的一个参数&#xff0c;在类&#xff08;函…

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

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

Zotero Word中插入带超链接的参考文献

Zotero 超链接 找了好多原代码&#xff0c;最接近能实施的为&#xff1a; https://blog.csdn.net/weixin_47244593/article/details/129072589 但是&#xff0c;就是向他说的一样会报错&#xff0c;我修改了代码&#xff0c;遇见报错的地方会直接跳过不执行&#xff0c;事后找…

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

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

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

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

PCB机打孔机程序(一)

/*PCB机板增加读写FM24C64函数PAST 2018 1 6 21:30 CODE 28435*/ /*程序编辑按XX-YY-快速显示数据 测试完成 程序编号 程序行号 界面重新编排 参数设置 系统设置XY分子分母 光标位置选择 选中数字闪烁 进入手动操作 按返回退出 按空格键 数据清除L4346 13775061792*****/ …

【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卡启动 如下图所示&#xff0c;将1拨到On,2,3,4拨到Off&#xff0c;即为通过SD启动。 2.准备SD卡中的内容 首先需要将SD格式化为FAT32的&#xff08;如果已经是FAT32格式&#xff0c;则…

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

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

代码随想录leetcode200题之字符串

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题中字符串部分的题目。 2 训练 题目1&#xff1a;344. 反转字符串 C代码如下&#xff0c; class Solution { public:void reverseString(vector<char>& s) {int i 0, j s.size() - 1;whi…

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

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

Spring开发利器:深入解析Apache Commons Lang的BooleanUtils类

1. 概述 Spring框架中并没有直接提供名为BooleanUtils的类。然而&#xff0c;Apache Commons Lang库中有一个非常有用的BooleanUtils类&#xff0c;它提供了一系列静态方法来简化对布尔值的操作。虽然Spring本身没有提供这样的工具类&#xff0c;但在Spring项目中&#xff0c;…