Linux软件安装包管理器yum

Linux软件安装

Linux软件安装的本质

​ 对于安装软件最基本的理解就是把可执行程序拷贝到指定路径下,我们知道直接输入指令就可以实现想要的功能,这些指令本质上都是放在指定路径下的可执行文件,如果我们把写好的程序编译后的可执行文件放到指定路径下,我们的程序就可以像指令一样使用了。

3169b41e04904f3d9b7f89ea4ea88122

​ 我写了一个程序重命名为printabc,功能是输出abc,可以看到我们运行printabc时还要指定路径,然后我们查看ls指令的所在路径,把printabc拷贝到ls所在的路径 。

9317a595dc614b8a9a8d4c700c94c56c

​ 拷贝完成后我们可以用which查看我们printabc的路径(which是查看指令所在的路径),然后我们不用再指定路径了,直接输入printabc就可以直接运行了,此时相当于我们安装了printabc这个软件


Linux安装软件的方法

  1. 源代码安装

    ​ 源代码安装就是把别人写好的源码下载下来解压,然后配置安装目录,编译源码进行安装。听起来很便捷,不过实际上在编译这个阶段会出很多问题,比如编译器版本不同可能导致编译不通过,或者是交叉编译并且源码本身移植性很差,就会出现各种问题导致安装失败。

  2. rpm包安装

    ​ 当然也有人直接编译好的文件直接打包,我们解包(tar指令)后,就可以安装了。但是实际的问题是我们首先要找,其次是其源码是依赖于一些第三方库还有编译器的,并且有些包的软件还依赖于其他的软件(可理解为前置软件),也是不方便。

  3. yum一键式安装(ubuntu中是apt-get

    ​ yum是包管理器,一句指令就能安装,具体原理我们下面讲解。

yum

yum安装原理

​ 在介绍yum安装原理之前我们需要先介绍更通俗易懂的安装方式,也就是应用商店的安装原理,比如小米的应用商店,iphone的App Store等等,这里我们拿小米举例

​ 首先在手机上的大部分软件都是客户端软件,应用商店也是,小米的应用商店是连接着小米的服务器,服务器里都是通过了审核的软件,安全性有保证,而给服务器提供软件的是那些写软件的公司,而我们下载软件就是通过小米应用商店这个客户端去小米服务器下载对应的软件。

83e2f30d362c446cbe15036b156b13fc

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

​ Linux因为其本身是开源的,所以会有很多人去开发软件再开源到Linux社区里,有软件来源。也有一些公司使用Linux操作系统,支持Linux,所以会赞助Linux社区,这样就有了维护存放软件包的服务器的费用了。
而yum就是去连接Linux社区的服务器的一个包管理器,但是Linux社区的服务器在外网,因为一些众所周知的原因,我们是很难访问的。所以就有国内的镜像服务器,就是把外网Linux服务器的软件包拷贝到国内的服务器上,再免费供我们下载。比如清华大学、网易、阿里巴巴的镜像源。

​ 服务器的链接在一个文件里保存着,绝对路径为/etc/yum.repos.d/CentOS-Base.repo,这里是官方软件源,里面都是得到官方认可并且经过时间考验没有问题的软件,还有一些比较新的软件,或者是用的人少,还在测试的软件存放在另一个软件源,其链接在epel.repo里,其绝对路径为/etc/yum.repos.d/epel.repo,如果没有就输入yum install -y epel-release即可(现在需用root账户安装),当你想安装一个软件时yum会把所有软件源都搜索一次。

yum使用介绍

安装软件和卸载软件都是需要向系统目录进行修改,一般需要sudo或者root账户才能完成。

yum install 软件名:安装软件

yum remove 软件名: 卸载软件

安装一个小火车软件:yum install sl

安装完毕后输入指令sl就可以看见一个小火车在前进。

虚拟机创建的Linux其yum的软件源大概率还是国外的,想要修改成国内的话百度搜索即可

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

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

相关文章

证明char是定长的?

证明char是定长的? 大部分博客都在讲解char和varchar区别的时候都谈到char为定长,varchar为变长。 但是怎么证明char为定长呢? 下面是我证明的过程。 创建CHAR列:首先,创建一个CHAR列,指定其长度。例如&…

10kb的照片尺寸怎么弄?三个方法值得一试!

为了方便存储和传输,同时还能保证一定的清晰度。10kb的照片在清晰度和尺寸之间达到了平衡,既能保证照片的细节和色彩,又不会占用太多的存储空间。那么如何把照片弄成10kb呢?下面介绍了三种方法。 方法一:嗨格式压缩大师…

GZ035 5G组网与运维赛题第10套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第10套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) 子…

Spring Cloud之Sentinel的简单学习

目录 雪崩问题 超时处理 线程隔离 熔断降级 流量控制 服务对比 安装Sentinel控制台 案例 簇点链路 限流规则 流控模式 直接模式 关联模式 链路模式 流控效果 Warm up 排队等待 热点参数限流 隔离与降级 Feign整合Sentinel 线程隔离 规则设置 熔断降级 …

RK3568外部IO中断示例

外部IO中断介绍 本篇文章以万象奥科HD-RK3568-IOT评估板中GPIO30为例,介绍Linux内核中断的注册方法,使用中断的方式检测GPIO30是否出现上升沿信号。中断在linux、设备驱动开发里使用的都非常多,可以更加实时的检测GPIO30的状态。 Linux内核…

高等数学教材重难点题型总结(九)多元函数微分法及其应用

第九章习题总结完毕,最难的应该就是方程组求解隐函数中的雅可比行列式了,其他方面无论是期末还是考研都不会出太多难题。对于多元极限和连续性质要理解得更深刻一些,而方向导数、梯度等公式,应该熟练掌握~ 1. 写出多元函数的定义域…

TypeScript 第一站概念篇

前言 🔮 好长一段时间没有写文章了,原因是经历了一次工作变动,加入了一个有一定规模的开发团队,前端算上我有四个人,很欣慰,体验一下团队配合的感觉,在我之上有一个组长,比我年长四…

Azure 机器学习 - 使用 AutoML 和 Python 训练物体检测模型

目录 一、Azure环境准备二、计算目标设置三、试验设置四、直观呈现输入数据五、上传数据并创建 MLTable六、配置物体检测试验适用于图像任务的自动超参数扫描 (AutoMode)适用于图像任务的手动超参数扫描作业限制 七、注册和部署模型获取最佳试用版注册模型配置联机终结点创建终…

Spark的主要概念

文章目录 🔊博主介绍🥤本文内容🍊 1. RDD🍊 2. Spark SQL🍊 3. Spark Streaming🍊 4. MLlib🍊 5. GraphX🍊 总结 📢文章总结📥博主目标 🔊博主介绍…

ubuntu20.04配置解压版mysql5.7

目录 1.创建mysql 用户组和用户2.下载 MySQL 5.7 解压版3.解压 MySQL 文件4.将 MySQL 移动到适当的目录5.更改mysql目录所属的用户组和用户,以及权限6.进入mysql/bin/目录,安装初始化7.编辑/etc/mysql/my.cnf配置文件8.启动 MySQL 服务:9.建立…

在Linux上编译gdal3.1.2指南

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 以Ubuntu 18编译gdal3.1.2为例,编译gdal3.1.2需要先编译proj库和geos库(可选)。我选择的proj库版本为proj-7.1.0,编译proj-7.1.0需要先编译tiff库和sqlite3。我选择的sqlite3的版本为…

Unity的live2dgalgame多语言可配置剧情框架

这段代码用于读取表格 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using OfficeOpenXml; using System.IO; using UnityEngine.Networking; using UnityEngine.UI; using Random UnityEngine.Random;public class Plots…

工业5G路由器;小体积 千兆高速通信组网

计讯物联工业路由器TR232,5G高速网络,超低时延、高可靠性,小体积、易安装、强兼容,串口/网口多设备接入联网,为用户提供高速稳定的数据传输通道 。    小体积5G工业路由器TR323,外形1047824mm&#xff0…

系列六、Mybatis的一级缓存

一、概述 Mybatis一级缓存的作用域是同一个SqlSession,在同一个SqlSession中执行两次相同的查询,第一次执行完毕后,Mybatis会将查询到的数据缓存起来(缓存到内存中), 第二次执行相同的查询时,会…

ArmSom---SPI开发指南

1. 简介 RK3588从入门到精通本⽂主要介绍在Rockchip平台配置spi接口并且使用的方法开发板:ArmSoM-W3Kernel:5.10.160OS:Debian11 2. SPI接口概述 SPI(Serial Peripheral Interface),即串行外围设备接口&…

ElementuiPlus的table组件实现行拖动与列拖动

借助了插件sortablejs。这种方法只适合做非树状table。如果想实现树状table&#xff0c;并且可拖动。可以试一下aggridVue3这个插件 <template><div class"draggable" style"padding: 20px"><el-table row-key"id" :data"t…

RabbitMQ 消息对象 序列化/反序列化 天坑!异常处理方案

目录 1. 报错的背景 2. 问题分析 3. 最佳解决办法 1. 报错的背景 a&#xff09;使用 RabbitMQ 发送消息时&#xff0c;发送消息的类型为 Map<String, Object>&#xff0c;map 里面我 put 了一个 <String, Long> 类型&#xff0c;如下图&#xff1a; b&#xff…

【考研数据结构代码题2】删除单链表倒数第n个结点

题目&#xff1a;删除单链表倒数第n个结点 难度&#xff1a;★ 算法思路&#xff1a; 首先题目没有指明链表的长度&#xff0c;多以首先需要编写一个函数getLength()来求表长&#xff0c;其次删除倒数第n个结点&#xff0c;即删除正数第length-n1个结点&#xff0c;这是二者之间…

更快更准 | YOLOv3算法超详细解析(包括诞生背景+论文解析+技术原理等)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv3是一种基于深度学习的目标检测算法&#xff0c;它可以快速而准确地在图像中检测出多个目标。它是由Joseph Redmon和Ali Farhadi在2018年提出的&#xff0c;是YOLO&#xff08;You Only Look Once&#xff09;系列算法…

Linux权限+Shell和Linux的关系

文章目录 1.Shell存在的意义及作用1.1对于Shell的认知过程1.2Shell/图形化界面外壳程序的意义 2.对Linux权限的理解2.1对Linux权限的认知过程2.2对于Linux下ll指令显示的文件属性的认识 1.Shell存在的意义及作用 1.1对于Shell的认知过程 Linux是什么? Linux是一套免费使用和自…