【Linux系统编程】Linux 软件包管理器——yum

news2024/11/15 21:45:00

文章目录

  • 1. 什么是yum
  • 2. yum的使用
    • 2.1 注意事项
    • 2.2 查看软件包
    • 2.3 如何安装软件
    • 2.4 如何卸载软件
    • 2.5 yum源

这篇文章我们要学习的是—— Linux 软件包管理器 yum

1. 什么是yum

首先来问大家一个问题:

我们平时使用的手机上,都会有一个应用叫做“应用商店”,那大家思考一下,我们在应用商店里面去下载一些软件的时候,这些软件是从本地直接下载的呢还是从远端的服务器下载的?

那这个相信大家都应该知道,手机应用商店下载的软件是通过互联网从远端服务器下载到用户设备的。远端服务器存储着应用程序的安装包,当用户发起下载请求时,服务器会将安装包传输给用户的设备。
所以我们手机上的应用商店只是帮我们下载软件的,而软件本身并不在手机上,而是在远端的服务器上。应用商店会去帮我们找我们要下载的软件。

那同样的:

在Linux上,也需要有一个类似于应用商店的东西,在对应的服务器端去帮助我们下载和安装Linux需要的一些软件。

在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。
但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包(软件包和软件包管理器,就好比 “App” 和 “应用商店” 这样的关系),直接进行安装。

那在Linux上,这个类似于应用商店的东西就是我们接下来要学习的yum——Linux 软件包管理器。

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。

那大家再来思考一个问题:

为什么手机应用商店里面会有人提供这么多软件供我们下载和使用?

那这背后肯定是和利益相关联的,但另外这也满足了我们的需求,这是一种双赢的生态。

在Linux上我们也可以下载软件和工具,那在Linux上,是什么人出于什么目的为我们提供软件供我们下载使用呢?

在Linux上提供软件的人群有不同的动机,包括推动开源精神、贡献社区、满足用户需求、商业利益等。他们的努力为Linux用户提供了丰富的选择,并促进了Linux生态系统的发展和壮大。

2. yum的使用

2.1 注意事项

关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!
可以通过 ping 指令验证
在这里插入图片描述
这样就是🆗的。

2.2 查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包
在这里插入图片描述
但是这样列出来数量是非常多的。

所以我们可以使用要使用管道和 grep 命令只筛选出我们关注的包:
在这里插入图片描述
那这里显示出来的信息分别代表什么呢?

这三个部分分别是软件包的名称、软件包的版本号和软件包的版本号

2.3 如何安装软件

在Linux上安装软件的时候我们一般都把用户切换成root安装,或者加上sudo。

那如何用yum安装软件呢?

在这里插入图片描述
比如我现在想安装sl这个软件包
在这里插入图片描述
没安装之前我们是用不了的。
那yum安装软件包的语法是这样的:
yum install( -y) 软件包名
在这里插入图片描述
在这里插入图片描述
yum 会自动找到都有哪些软件包需要下载,这时候敲 “y” 确认安装,当然我们可以直接带上-y选项
出现 “complete” 字样, 说明安装完成.

安装好我们就可以用了:
在这里插入图片描述

当然安装的时候如果你知道后缀也可以把后缀带上:

在这里插入图片描述

注意事项:

安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.
如果 yum 报错, 请自行百度.

2.4 如何卸载软件

还是用一条命令,把安装命令中的install 换成remove就行了

在这里插入图片描述
在这里插入图片描述

然后这条命令就用不了了:

在这里插入图片描述

2.5 yum源

然后想告诉大家的是:

Linux的软件其实分为官方软件和扩展软件,新出来的软件是不能直接进官方软件的队列里的,而是到扩展软件源里面,被人们用上一段时间,如果比较不错,才会纳入到官方软件源里面。
所以我们一般下软件都建议下官方软件源里面的,一般比较常见的软件都是官方的,但是有些其实没有被纳入官方源里面,比如我们刚才安装的sl,他就是一个扩展的。

然后大家再来思考一个问题,我们用手机的应用商店下载软件的时候,它是怎么知道要去哪里下载的呢?

🆗,它们之所以知道,一般都是它们内置的有下载链接的地址或者配置文件。
即我们下载应用商店的时候,不仅下载了这个软件,还包含了对应的一些配置文件,这里有对应各种软件的下载地址。

那对于yum来说呢?

🆗,同样的,他也有自己对应的配置文件,我们把它叫做yum源。

那yum源在哪里呢?

在这个路径下:
在这里插入图片描述

其中的这个-Base的这个我们称为基础yum源

我们可以看一下:
在这里插入图片描述
在这里我们就可以看到我当前机器上默认的一个下载路径,我这个yum是华为云的。

那其实这个yum源是可以更新的,但是:

如果你自己使用yum的时候没有问题,并且你自己看到你的yum源配置文件里面就是国内的镜像源–阿里云,163,华为,腾讯的,就可以直接使用,不用配置了。
如果你想配置一下,也行,因为我们做了备份,如果配置失败,进行恢复即可。
关于yum源的更新这里就不介绍了,网上可以搜到很多的教程。

另外呢:

我们上面说了,yum源其实有这个官方yum源和扩展yum源。
如果你在安装某些软件的时候提示找不到,那它有可能就是在扩展的yum种。
那扩展yum源其实就是这个
在这里插入图片描述
那找不到怎么解决呢?
sudo yum install -y epel-release
这条指令会根据你的base yum源,帮你找到和他匹配的扩展yum源
然后再执行sudo yum install -y就可以完成安装了。

在这里插入图片描述

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

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

相关文章

【全栈开发指南】OAuth2授权获取token调试接口的方式

在我们实际应用接口的调用调试过程中,需要用到token或者刷新token,GitEgg支持OAuth2.0协议进行认证授权,这里介绍说明如何通过Postman获取token和refresh_token并进行接口调试。 1、使用密码模式获取token 根据spring-security-oauth2的实现…

创建虚拟机安装windowserver2016服务器(NETBASE第二课)

2 操作流程 文件-新建虚拟机-自定义(高级)-下一步-稍后安装操作系统-下一步-客户机操作系统-选择Windows 10 X64-下一步-虚拟机名输入win10-1-位置选择(E:\虚拟机\Win10-1)-下一步-固件类型选择UEFI-下一步-下一步-输入内存2048M-…

2023年Arm最新处理器架构分析——X4、A720和A520

1、引言 上一篇文章我们介绍了Arm的Cortex-X1至Cortex-X3系列处理器,2023年的5月底,Arm如期发布了新一年的处理器架构,分别为超级大核心Cortex-X4,大核心A720和小核心A520。在智能手机行业,Arm始终保持每年一迭代的处…

ModaHub魔搭社区:ChatGLM-RLHF:无需微调 教程

目录 使用方法 效果展示 对ChatGLM直接使用RLHF进行调整参数,无需传统的finetune|Modify ChatGLM params with only RLHF。 大部分的RLHF代码都是在分布式框架,不适合学习和使用,本代码的RLHF代码不需要Megatron或者deepspeed框架&#xff…

Maven高级(三)--聚合

1.解决的问题: 此时tlias-web-management模块的父工程是tlias-parent,该模块又依赖了tlias-pojo,tlias-utils模块。那么此时,我们要将tlias-web-management模块打包,是比较繁琐的。因为进行项目打包,maven会从本地仓库来查找tlias…

Jupyter notebook 安装代码提示和补全

打开Anaconda Prompt 终端 依次输入 pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user pip install jupyter_nbextensions_configurator jupyter nbextensions_configurator enable --user 打开Jupyter notebook

Linux的用户管理精简全总结

(该图由AI绘制 关注我 学习AI画图) 目录 Linux操作系统用户和组的概念 1、为什么需要了解用户和组 2、用户和组的关系 3、用户组操作 ☆☆☆☆☆☆☆☆☆☆☆ /etc/group文件解析 ☆ 用户组的修改 ☆ 用户组的删除 4、用户操作 ☆ 用户信息查…

VSCode 提示 1.16.15 版本的Go,不支持 gopls v.0.13.0

Go1.16.15无法使用 goplsv.0.13.0 问题详情解决办法 问题详情 Gopls was built with Go version 1.16, which will be unsupported by gopls v0.13.0. Please upgrade to Go 1.18 or later and reinstall gopls. If you cant upgrade and want this message to go away, pleas…

FPGA实现二进制转BCD码

1、简介 bcd码:以4bit二进制码表示一个十进制码 例如,432(d) 0100-0011-0010(bcd) 这里具体的判断方法为:(满5)加3法 二进制位宽为W,则BCD位宽只需要&…

JS 实现CSV文件转换SQL文件小工具

一. 需求 最近在项目中遇到一个问题,客户提供的数据是CSV格式的, 需要将CSV文件中的数据转换为SQL语句文件。 😅由于本人不会Excel的vba编程,因此决定使用JS来实现。 二. 实现思路 提供一个文件上传框,支持多文件上…

微信小程序全局配置详解

通过全局配置实现的效果 开发者 微信公众平台 登录网址 https://mp.weixin.qq.com/ 注册网址 https://mp.weixin.qq.com/cgi-bin/wx?token&langzh_CN 微信小程序开发者工具 下载地址 https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 小…

WPF grid控件定义行和列

在此已经学习了wpf Grid控件&#xff0c; WPF布局控件Grid的基本使用 - 使用kaxaml_bcbobo21cn的博客-CSDN博客 下面继续学习&#xff1b; 定义3行3列的基本代码如下&#xff1b;为了看清效果&#xff0c;设置 ShowGridLines"True"&#xff1b; <Grid ShowGrid…

Tkinter_鼠标选中样式

前言 使用tkinter库创建窗口应用程序示例&#xff0c;包含不同鼠标样式标签。 一、方法 import tkinter as tkclass Mouse_Style:def __init__(self):self.root tk.Tk()self.root.title(样式)self.root.geometry("200x5201100150")self.interface()def interface(…

【G431】多路ADC+DMA采集

文章目录 前言1.CubeMx的配置步骤3.测试代码4.演示效果 总结 前言 之前蓝桥杯程序中使用的是查询方式的ADC&#xff0c;缺点是当采集通道多的时候会导致CPU速率变低从而导致查询ADC代码之后的程序会被阻塞。而DMA就不会&#xff0c;DMA会绕开CPU直接传输。 1.CubeMx的配置步骤…

GDB 查看、修改变量

1、info args : 查看函数的入参内容 2、set print null-stop :遇到无效的字符就不显示出来了 3、set print pretty :让结构体以定义的形式展示出来&#xff0c;一个字段一行 4、 set print arry on :让数组中的元素每个占一行显示 5、 p sizeof(xxx) : 查看xxx的大小&#xff…

STM32 DSP库CUBEMX配置+FFT频率计算

文章目录 前言一、DSP库添加1.1 加一个define1.2 添加文件路径1.3 主函数 二、FFT运算求频率2.1 初始版本版本2 总结 前言 使用DSP中的函数加快计算。 本文首先讲述如何通过添加dsp库。 再讲述使用DSP库进行实数FFT运算。&#xff08;FFT运算用到了前面讲述的STM32CubeMX-ADC …

mysql 安装

常用存储引擎功能对比&#xff1a; mysql 安装流程&#xff1a; 如果直接本地安装&#xff0c;就只需要安装好然后配置环境变量就行了&#xff0c;my.ini文件会自动帮你写好&#xff0c;如果是zip压缩包安装就需要自己写my.ini文件&#xff0c;下面详细介绍zip压缩包安装 下载…

提示工程的前世今生

原文链接&#xff1a;芝士AI吃鱼 通过提示进行情境学习 在生物学中&#xff0c;涌现是一种令人难以置信的特性&#xff0c;由于相互作用的结果&#xff0c;各个部分聚集在一起&#xff0c;表现出新的行为&#xff08;称为涌现&#xff09;&#xff0c;这是你在较小的尺度上看不…

分别基于红黑树、timefd、多级时间轮实现定时器

文章目录 一、定时器的应用二、定时器的触发方式2.1 网络事件和定时事件在一个线程中处理2.2 二、定时器的设计2.1 接口设计2.2 数据结构设计2.2.1 红黑树2.2.3 最小堆2.2.4 时间轮 三、利用红黑树实现定时器3.1 数据结构3.2 接口实现3.2.1 初始化定时器3.2.2 添加定时器3.2.3 …

【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64

为什么叫x86和x86_64和AMD64? 为什么大家叫x86为32位系统&#xff1f; 为什么软件版本会注明 for amd64版本&#xff0c;不是intel64呢&#xff1f; x86是指intel的开发的一种32位指令集&#xff0c;从386开始时代开始的&#xff0c;一直沿用至今&#xff0c;是一种cisc指令…