当前位置: 首页 > news >正文

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 list | grep ****:查找软件,grep行过滤,也是关键词搜索

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

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

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

相关文章:

  • 【漏洞复现】Apache_Tomcat7+ 弱口令 后台getshell漏洞
  • AI:52-基于深度学习的垃圾分类
  • Azure 机器学习 - 设置 AutoML 训练时序预测模型
  • AI 引擎系列 4 - 首次运行 AI 引擎编译器和 x86simulator(2022.1 更新)
  • leetCode 322.零钱兑换 完全背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化 + 画递归树
  • 基于STM32CubeMX和keil采用USART/UART实现非中断以及中断方式数据回环测试借助CH340以及XCOM
  • Docker学习——③
  • 【Redis】的简介和安装配置(Linux和windows)及操作命令
  • Hive 解析 JSON 字符串数据的实现方式
  • Golang源码分析之golang/sync之singleflight
  • 【Java初阶练习题】-- 数组练习题
  • Qt界面美化之Qt Style Sheets
  • Ansible自动化安装部署及使用
  • 单链表基本操作的实现,初始化,头插,尾插,判空,获取个数,查找,删除,获取前置和后置位,清空,销毁
  • 在树莓派上使用Nginx搭建本地站点并通过内网穿透实现远程访问
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Consul Config 使用Git做版本控制的实现
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • flutter的key在widget list的作用以及必要性
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Javascript编码规范
  • JS实现简单的MVC模式开发小游戏
  • Python学习笔记 字符串拼接
  • use Google search engine
  • 将回调地狱按在地上摩擦的Promise
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 力扣(LeetCode)56
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 十年未变!安全,谁之责?(下)
  • 小程序开发中的那些坑
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 如何在招聘中考核.NET架构师
  • ​什么是bug?bug的源头在哪里?
  • (C语言)fread与fwrite详解
  • (solr系列:一)使用tomcat部署solr服务
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (篇九)MySQL常用内置函数
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (五)c52学习之旅-静态数码管
  • (循环依赖问题)学习spring的第九天
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 2.0中新增的一些TryGet,TryParse等方法