Linux:软件包管理器 - yum

Linux:软件包管理器 - yum

    • Linux的软件安装方式
      • 源代码安装
      • rpm包安装
      • yum安装
    • yum三板斧
      • yum list
      • yum install
      • yum remove
    • yum生态
    • yum源


Linux的软件安装方式

源代码安装

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序

源代码安装是最初的安装方式,在安装一个程序的过程中,我们要经历以下过程:

  1. 找到所需的源代码
  2. 挑选自己合适的版本
  3. 自己对代码编译运行(如果代码兼容性差,还要自己改)

可见该方法安装一个软件包代价有的多高,因此现在几乎不使用这种方法安装。


rpm包安装

把一些常用的软件提前编译好, 做成软件包放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装

这种的rpm包,就是已经把代码编译好了,我们可以直接下载下来然后进行安装。但是这也会遇到问题,比如这个编译好的rpm包运行时可能需要其它的库,比如C语言库,C++库等,如果你的Linux上面没有这种库,那就要额外地下载。或者有软件之间的依赖关系,一个软件想要运行,必须同时有其他的软件。


yum安装

与之前两种安装方式不同的是,yum的安装是全自动化的,完全不需要你操心任何一个过程,其可以自动判断一个软件要去哪个地方下载,自动下载好配套软件。因此yum是当前主流的软件安装方式。

接下来我先讲解yum的基础指令,然后再深入yum相关的生态体系。


yum三板斧

yum list

如果我们直接使用yum list,会列出所有可以下载的软件,这会导致大量刷屏。一般而言,我们会有目的的下载某一个软件,比如我现在要下载一个叫做lrzsz的软件。我们要用grep进行筛选,选出带有lrzsz字段的软件。

在此我输入yum list | grep lrzsz

在这里插入图片描述

我们就搜到了自己想要的软件,x86_64表示该软件在64位计算机中运行。 0.12.20-36.el7是版本号,el表示CentOSel7就表示CentOS7base表示软件的提供方。

一般而言,软件的提供方有两种,baseepel

  • base:基本软件源,这里面的软件都是经过筛选,比较稳定的软件
  • epel:扩展软件源,一般都是新软件,这些软件刚发布需要经过一定时间的测试,来发现一些问题,当epel内部的软件经过一定时间后变得稳定了,而且比较好用,就会进入base

yum install

当我们找到一个软件,就可以进行下载了。语法为yum install xxx,也就是下载xxx软件。

我这里下载lrzsz,执行yum install lrzsz

在这里插入图片描述

其没有直接给我们下载,而是向我们展示了这个软件的相关信息,比如版本,名称,软件也,大小等等,然后向我们确认是否安装此软件。

如果你不希望它询问,那么就输入-y选项,这样就会直接下载了,yum install -y lrzsz

在这里插入图片描述

最后显示complete!就说明下载成功了


yum remove

如果你想删掉一个软件,那就执行yum remove xxx命令。

比如我要删掉lrzsz,执行yum remove lrzsz

在这里插入图片描述

同样的,会向你展示该软件的信息,然后向你确认是否删除。如果不希望它询问,直接删除,加上-y选项即可。


yum生态

在使用yum时,你可以从别人的服务器上下载各种软件,那么你有没有想过,这些服务是谁提供的?为什么你可以免费的使用别人的服务?

一个系统用的人越多,其社区的活跃度就越高,存在的问题就越容易暴露出来。而因为人多,问题暴露出来就会有更多的人去解决问题。同样的,人多的操作系统软件就更加全面,专业人士也更多。相应的,当一个操作系统的人越来越多,那么也就会吸引越来越多的人,公司,组织去使用这一款操作系统。

而为了吸引不同的人去使用一款操作系统,很多操作系统都有自己的特点。比如说当前Linux的版本就有Ubuntu,CentOS,Debian等等,它们的Linux内核几乎没有差别,区分开它们的是社区。比如说Ubuntu大部分被学生使用,CentOS大部分被公司以及开发者使用。那么Ubuntu社区中的人们,就会更加广泛的提出以及解决学习方面的问题,而CentOS社区更注重实际开发方面的问题。久而久之各个版本的操作系统之间社区就建立了起来,一个用户选择操作系统时,就会去了解这个社区,比如这个人对网络安全感兴趣,对实际开发感兴趣,那么他就会选择不同的系统。

一个社区的既得利益者,比如公司,组织,学生,开发者。他们都不希望自己的社区倒下,公司为了让自己的系统更加稳定,开发者为了自己写的代码可以被看到,学生为了自己的问题可以及时被解决。于是他们就会想办法来维护社区,让社区越来越好,这样自己也就能从中获取更多的利益。

那么回到最初的问题,我们的yum要去别人的服务器中下载软件,服务器谁提供的?这有很多种形式,比如开源组织自己购置的,公司为了维护社区提供的,等等。总而言之就是为了让社区存活下去,既得利益者会提供这样的服务。那么开源组织明明开源,那就应该不收费啊,为什么还有钱来购置服务器?对,我们使用Linux这样的系统是不收钱的,从中下载软件也不要钱,开源组织不从我们手上收钱。很多使用Linux的公司,它们希望Linux可以发展的越来越好,那么他们就会向开源组织捐赠。开源组织不对他们提供的服务收费,但是他们可以接收捐赠,因此开源组织是有钱的,甚至是盈利的。

服务器的来源知道了,那么软件又是谁提供的呢?Linux社区这么多人,自然就有人愿意出来提供开源服务,把自己写的软件进行开源。另外的,Linux有多个版本,多个社区。如果有一天Ubuntu推出了一个很好用的软件,CentOS社区的用户看到了,发现CentOS没有这样的软件。于是CentOS社区的人直接把Ubuntu的该软件的代码拷贝过来,改改就变成了可以在CentOS下运行的软件,然后发行到CentOS上。反正都是开源项目,我们社区直接抄你们社区的代码也是合法合规的。因此很多软件只要一个Linux版本下出现了,其他版本也很快就会有对应的软件。再比如现在很多开源网站,知名的清华源等,它们也是直接拷贝一些国外的开源代码,方便国内的用户使用,反正都是开源的,我就算把所有的资料都拷贝走,也是合法合规的。


yum源

那么yum是如何知道要去哪里下载软件的呢?

我们可以找到/etc/yum.repos.d/下面的文件:

在这里插入图片描述
repos表示仓库,d表示目录,在改目录下,会存储大量的网址,yum会到对应的网址内部查找软件,并且筛选合适的版本自动下载到你Linux主机上。

比如这是CentOS-Base.repo内部:

在这里插入图片描述

可以看到内部有很多的连接,Linux就是到这些连接内部下载软件的。

这些称为yum源,在此常用的软件源有阿里云网易清华源等等,在此我为大家示范一个yum源的更新。环境为CentOS,使用的yum源是阿里云,这里需要root权限。

首先跳转到yum源所处目录下:cd /etc/yum.repos.d/

在这里插入图片描述

先把我们当前的CentOS-Base.repo进行备份,备份为CentOS-Base.repo.backup,以免后续还需要进行恢复。

cp CentOS-Base.repo CentOS-Base.repo.backup

然后从阿里云下载新的yum源:

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

在这里插入图片描述

此时我们目录下的CentOS-Base.repo文件就已经被更新了。

更新yum源后,需要清除yum缓存,以便系统能够识别新的yum源文件。可以使用以下命令清除yum缓存:

yum clean all

清除yum缓存后,需要更新yum缓存,以便系统能够识别新的yum源文件中的软件包信息。可以使用以下命令更新yum缓存:

yum makecache

更新yum源后,可以使用以下命令测试新的yum源是否可以正常工作:

yum list

如果没有出现错误,并且软件包列表与预期一致,则表示新的yum源已经更新成功。

更新yum源是维护CentOS系统安全和稳定性的重要步骤。在更新yum源之前,应该备份当前的yum源,以防止出现问题。同时,应该从可靠的站点下载新的yum源文件,并清除和更新yum缓存,以保证系统能够正常使用更新的yum源文件。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARM内核、内核寄存器及作用、ARM最小系统、半导体器件、存储器、ARM工作方式、ARM寄存器个数、立即数、汇编指令的s/c后缀

我要成为嵌入式高手之4月10日51单片机第五天!! ———————————————————————————— 单片机最小系统板: 单片机内部的CPU: CPU定义的变量都在ram中、编写的程序代码都在rom中 CPU在次细化:ker…

AMD Tensile 简介与示例

按照知其然,再知其所以然的认知次序进行 1,下载代码 git clone --recursive https://github.com/ROCm/Tensile.git 2,安装 Tensile cd Tensile mkdir build cd build ../Tensile/bin/Tensile ../Tensile/Configs/rocblas_dgemm_nn_asm_full…

MongoDB快照(LVM)业务场景应用实战

MongoDB和LVM快照概述 MongoDB的重要性:MongoDB支持的灵活的文档模型,使其成为处理大量分散数据的理想选择,特别是在需要快速迭代和频繁更改数据结构的应用中。 LVM(逻辑卷管理)快照技术基本概念:LVM允许…

CY7.5-COOH荧光属性Cyanine7.5花菁染料

CY7.5-COOH,作为一种Cyanine 7.5花菁染料,在荧光属性上表现出色。其独特的化学结构赋予了它荧光性质,使其在生物标记、荧光成像和光学传感等领域具有诸多应用前景。 CY7.5-COOH具有出色的荧光量子产率,这意味着在激发光的照射下&…

C#/.NET/.NET Core拾遗补漏合集(24年4月更新)

前言 在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。 GitHub开源地…

微信小程序搜索排名优化的八个套路

微信小程序的搜索优化排名是一个综合性的工作,需要针对多个维度进行操作。小柚给各位新老客户列出一些关键步骤和策略,帮助老板利用微信小程序的搜索排名规则进行优化。 1.选择合适的关键词 深入研究目标用户的搜索习惯,选择高搜索量、低竞争…

Java List基础篇

目录 前言一、常用List1.1 List1.1.1 特点1.1.2 常用API 1.2 ArrayList1.2.1 特点1.2.2 使用 1.3 LinkedList1.3.1 特点1.3.2 使用 1.4 CopyOnWriteArrayList1.4.1 特点1.4.2 使用 1.5 Arrays.asList()1.5.1 特点1.5.2 使用 二、对比总结 前言 一、常用List 1.1 List List是…

Day93:云上攻防-云服务篇对象存储Bucket桶任意上传域名接管AccessKey泄漏

目录 云服务-对象存储-权限配置不当 权限控制-公共读或公共读写:可完整访问但不显示完整结构目录 权限控制-Bucket授权策略:设置ListObject显示完整结构目录 权限控制-Bucket公共读写权限:公共读写直接PUT文件任意上传 云服务-对象存储-…

手写ArrrayList

需求 自定义的MyArrayList import java.util.Arrays; import java.util.Objects;public class MyArrayList<E> {private Object[] elementData ; // 存储元素的数组private int size; // 记录 的元素个数private static final int DEFAULT_CAPACITY 10; // 默认容量// …

Java高频面试之JVM篇

说一下 Jvm 的主要组成部分&#xff1f;及其作用&#xff1f; 类加载器执行器运行时数据区域本地接口 谈谈对运行时数据区的理解&#xff1f; 堆和栈的区别是什么&#xff1f; 堆中存什么&#xff1f;栈中存什么&#xff1f; 堆总存对象,栈中存局部变量,引用 为什么要把堆…

最新php投票系统源码下载 二维码投票生成器系统 源码开源可二开

在当今数字化时代&#xff0c;投票系统已成为各类活动、选举、调查等场景中不可或缺的工具。为了满足广大用户对于高效、便捷投票系统的需求&#xff0c;分享一款最新版的PHP投票系统源码&#xff0c;带二维码投票生成器功能&#xff0c;为用户提供了更为灵活和多样化的投票体验…

说说你对栈、队列的理解?应用场景?

一、栈 栈&#xff08;stack&#xff09;又名堆栈&#xff0c;它是一种运算受限的线性表&#xff0c;限定仅在表尾进行插入和删除操作的线性表 表尾这一端被称为栈顶&#xff0c;相反地另一端被称为栈底&#xff0c;向栈顶插入元素被称为进栈、入栈、压栈&#xff0c;从栈顶删…

【Python实践应用】使用Python加载栅格数据

下面的代码实现的是加载伊宁市NDVI数据&#xff0c;首先进行相关的python包的导入&#xff0c;然后定义和读取我们需要加载的数据&#xff0c;这里我们使用的NDVI数据是将伊宁23年的NDVI数据合并成为了一张栅格图像&#xff0c;每个波段表示一年的 NDVI&#xff0c;我们这里显示…

备战蓝桥杯---刷杂题2

显然我们直接看前一半&#xff0c;然后我们按照斜行看&#xff0c;我们发现斜行是递增的&#xff0c;而同一行从左向右也是递增的&#xff0c;因此我们可以直接二分&#xff0c;同时我们发现对称轴的数为Ck,2k. 我们从16斜行枚举即可 #include<bits/stdc.h> using name…

探索AI工具导航网站

在现代科技发展迅猛的时代&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了各行各业中不可或缺的一部分。了解和利用最新的AI工具对于工作、学习和娱乐都具有重大意义。在这篇博客中&#xff0c;我们将探索一些最新的人工智能工具导航网站&#xff0c;以及其中一款名…

liunx系统发布.net core项目

liunx系统发布.net core项目 准备.net6程序运行环境部署nginx&#xff0c;通过一个地址既能访问web api&#xff0c;又能访问web项目有一个客户把web api放到docker中&#xff0c;想通过nginx转发&#xff0c;nginx也支持配置多个程序api接口的其它 liunx系统&#xff1a;cento…

【vue】ref 和 reactive 对比

ref&#xff1a;存储单个数据&#xff0c;如数值&#xff0c;字符串reactive&#xff1a;存储复杂数据&#xff0c;如对象&#xff0c;数组 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"vie…

短剧小程序系统开发,让短剧观看与创作更加便捷。短剧系统源码搭建

一、目前短剧发展趋势 1. 市场规模&#xff1a;根据数据来看&#xff0c;2023年中国微短剧市场规模达到了373.9亿元&#xff0c;同比上升了267.65%。预计2024年市场规模将超过500亿元。这一市场规模的增长速度非常显著&#xff0c;显示出短剧行业的巨大潜力和发展前景。 2. 投…

3款热门婴儿洗衣机全面对比测评:希亦、小吉、觉飞哪款性能最强?

经常洗大人衣物的传统洗衣机&#xff0c;很少有专门的高温除菌等功能&#xff0c;所以洗衣机里有可能会有一些大人身上带有的细菌&#xff0c;特别是婴儿衣物&#xff0c;婴儿抵抗能力弱&#xff0c;衣物混洗可能让宝宝感染细菌而导致生病&#xff0c;这种事情是有过发生的&…

SI案例分享--实用的单端口Delta-L测试方法

目录 0 引言 1 单端口Delta-L技术 2 基于单端口Delta-L方法的反射灵敏度分析 3 用充分表征的材料系统验证该方法 4 在单端口法中提取总损耗 5 总结 0 引言 Intel Delta-L方法已被公认为一种常规方法&#xff0c;通过对测试线进行2端口测量来提取层压板材料的Dk和插入损耗…