Linux软件包管理器 – yum

正文开始@Assassin

目录:

  • Linux软件包管理器 -- yum
    • 1. Linux环境下安装软件:
    • 2. yum简介:
    • 3. 软件包来源:
    • 4. 理解yum:
    • 5. 查找软件包:
    • 6. 安装软件:
      • 6.1 lrzsz工具的使用:
    • 7. 卸载软件:
    • 8. 搜索软件:
    • 9. 列出可更新软件:
    • 10. 更新软件包:
    • 11. 清除软件包缓存:
    • 12. yum扩展源epel:
    • 13. 配置国内yum源:

1. Linux环境下安装软件:

Linux下安装软件的方式可以简单归类为三类:

  • ① 下载到软件的源代码,自行进行编译,得到可执行程序
  • ② 获取rpm安装包,通过rpm命令进行安装(未能解决软件间的依赖关系)
  • ③ 通过yum命令进行软件安装(很好地解决了依赖关系,目前较为常用)

2. yum简介:

Yum(Yellow dog Updater, Modified) 是由Duke University团队修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于RPM包管理的字符前端软件包管理器。能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux、CentOS所采用

维基百科


3. 软件包来源:

可供Yum下载的软件包包括Fedora本身的软件包以及源自rpmfusion(页面存档备份,存于互联网档案馆)等非官方软件仓库的软件包,全部是由Linux社区维护的,并且基本是自由软件。所有的包都有一个独立的GPG签名,主要是为了用户的系统安全。对于Fedora core 4及更高版本的用户,来自新软件仓库的签名是自动导入并安装的。

维基百科


4. 理解yum:

yum是一个在Fedora、RedHat以及CentOS中的前端软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装,可以简单地类比为手机中的应用商店,如App Store;

小贴士: 一个服务器同一时刻只允许进行一次yum安装操作,不能在同一时刻同时安装多个软件,可能会报错;

yum是从服务器上下载RPM包,类似于跨网络进程间通信,所以在下载时必须联网,可以通过ping指令判断当前云服务器是否联网:

[Assassin@Ninghai ~]$ ping -c 3 baidu.com

ping 3 次百度得到回复,说明当前网络正常

5. 查找软件包:

命令:yum list
功能:列出所有可安装的软件清单

[Assassin@Ninghai ~]$ yum list | less

yum list:罗列出可供下载的全部软件,列出所有可安装的软件清单

这里简单补充一哈:

  • ① 第一列是软件包名称,其中一般涵盖标识该软件是64位架构还是32位架构,第二列一般包括该软件包的主次版本号,源程序发行号,软件包的发行号,主机平台,cpu架构等信息,第三列一般是软件源(软件来源方)的名称
  • ② " x86_64 " 后缀表示64位系统的安装包," i686 " 后缀表示32位系统安装包,选择包时应该注意要和系统匹配
  • ③ " el7 " 表示操作系统发行版的版本," el7 " 表示 " centos7 / redhat7 ", " el6 " 表示 " centos6 / redhat6 "
  • ④ yum 除了官方yum源还可配置其他非官方源,如epel源,这些非官方源所提供的软件包往往更全更新,但在一定程度上稳定性不如官方源

使用yum list配合grep查找lrzsz:

[Assassin@Ninghai ~]$ yum list | grep lrzsz

lrzsz 是一个提供 XMODEM / YMODEM / ZMODEM文件传输协议的Unix通信包工具;需要注意的是,zmodem协议不能处理超过4G的文件;lrzsz可以将Windows当中的文件上传到Linux当中,也可以将Linux当中的文件下载到Windows当中,实现云服务器和本地机器之间进行信息互传;

yum list | grep lrzsz: yum list 会列出所有可安装的软件包信息,该信息通过管道 | 作为 grep 命令的标准输入,进而筛选出lrzsz软件包

6. 安装软件:

命令:sudo yum install [软件包名]
功能:安装对应的软件

这里以安装lrzsz工具为例:

[Assassin@Ninghai ~]$ sudo yum install lrzsz


安装软件过程中,有时会出现让我们确认是否安装的提示,如下图所示:

在 yum install 后加上 -y 选项即可跳过询问步骤,对应到这里就是:

[Assassin@Ninghai ~]$ sudo yum install -y lrzsz

接下来 yum 工具会自动帮我们安装好相应的软件,并解决好依赖关系;

小贴士:

  • ① 安装软件时由于需要向系统目录中写入内容,一般需要使用sudo提升权限或者切换到root账户下才能完成
  • ② yum安装软件只能串行,不能并行;也就是说在使用yum安装一个软件的时候,不能同时使用yum安装另一个软件;如果使用yum安装一个软件的过程中,再尝试用yum安装另外一个软件,yum一般情况下会报错

6.1 lrzsz工具的使用:

实现本地机器和云服务器之间的文件互传:
① 云服务器发送文件至本地主机:
命令:sz [文件名]
功能:将云服务器上的文件下载到本地机器的指定文件夹

[Assassin@Ninghai test]$ sz test.cpp


② 本地主机发送文件至云服务器:
命令:rz -E 或者 rz
功能:将本地机器上的指定文件上传到云服务器

BTW: rz命令也可使用拖拽的方式完成,注意:lrzsz工具一般是用来互传小文件,且传输速率也不是很快,建议大一点的文件还是使用xftp来传输嗷,毕竟是专业的:

7. 卸载软件:

命令:sudo yum remove [软件名]
功能:将对应软件从本机上移除,不能再使用软件对应的功能

这里依旧以卸载lrzsz为例:

[Assassin@Ninghai test]$ sudo yum remove lrzsz

yum会自动卸载该软件,Removed Complete

8. 搜索软件:

命令:yum search [软件名]
功能:查找指定的软件包,具有关键字模糊匹配功能

依旧是以搜索lrzsz为例:

[Assassin@Ninghai test]$ yum search lrzsz


模糊匹配:

[Assassin@Ninghai test]$ yum search lrz

没有完整输出lrzsz,也搜索到了对应的软件包

9. 列出可更新软件:

命令:yum check-update
功能:列出所有可更新的软件清单

[Assassin@Ninghai ~]$ yum check-update

10. 更新软件包:

命令:sudo yum update
功能:更新所有可更新的软件

[Assassin@Ninghai ~]$ sudo yum update

更新软件包需要 sudo 提升权限或者root用户执行

Update Completed:

也可指定更新软件包:yum update [package_name]

11. 清除软件包缓存:

命令:yum clean all
功能:清除缓存目录下的软件包及旧的headers

清除掉yum中的缓存

12. yum扩展源epel:

EPEL是企业版 Linux 附加软件包的简称,EPEL是一个由Fedora特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目

EPEL 的软件包通常不会与企业版 Linux 官方源中的软件包发生冲突,或者互相替换文件。EPEL 项目与 Fedora 基本一致,包含完整的构建系统、升级管理器、镜像管理器等;

epel-release是第三方源,用来弥补 yum 官方源更新较为滞后的一个扩展源

[Assassin@Ninghai test]$ sudo yum install -y epel-release

13. 配置国内yum源:

国内有许多优秀的yum源,如网易163源,阿里云源,搜狐源,清华源,中国科大源等,将yum官方源设置为国内源可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到;

这里介绍将yum源更换为阿里云源:
① yum源位于/etc/yum.repos.d/CentOS-Base.repo,先查看一下:

② 换源前先备份,以便出错时能及时恢复;将CentOS-Base.repo重命名为CentOS-Base.repo.bak:

[Assassin@Ninghai yum.repos.d]$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

③ 下载阿里云源 http://mirrors.aliyun.com/repo/Centos-7.repo,将下载好的文件重命名为CentOS-Base.repo:
注意,自己的机器是centos 7就下载Centos-7.repo,对应好自己的版本

[Assassin@Ninghai yum.repos.d]$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者:
[Assassin@Ninghai yum.repos.d]$ curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

小贴士:wget中是 -O,大写的O,不是0;curl中是 -o,小写的o;为了避免出错建议直接copy

④最后清除缓存即可:

[Assassin@Ninghai yum.repos.d]$ yum clean all  # 清除系统所有的yum缓存
[Assassin@Ninghai yum.repos.d]$ yum makecache  # 生成yum缓存

【linux系统编程】基础开发工具:yum相关推荐

  1. linux篇【3】:Linux 环境基础开发工具yum,vim,gcc,makefile,git

    目录 一.Linux 软件包管理器 yum 1.什么是软件包 2.centos 7中安装形式 3.yum安装好处: 4.yum工具的常用选项 (1)yum list | grep sl 软件包信息介绍 ...

  2. Java后端学习路线6大维度详细总结(编程基础+开发工具+应用框架+运维知识+成神之路+平稳降落)【可作为知识点梳理列表】【点击可查看高清原图】

  3. 【Linux】环境基础开发工具使用(万字汇总)

  4. 【Linux】基础:Linux环境基础开发工具——make与Makefile

    [Linux]题解:Linux环境基础开发工具--make与Makefile 摘要:Makefile是一个文件定义了一系列的规则来指定编译过程以及更复杂的功能操作,make是一个命令工具,是一个解ma ...

  5. 为什么我们要掌握Linux系统编程?

    为什么我们要掌握Linux系统编程?(文末送书4本) 作为一个嵌入式开发者,我觉得基于Linux的系统编程,这个应该是绕不开的话题.本文将围绕,为何要掌握Linux系统编程这个问题,给出一些观点,希望 ...

  6. 资深程序员带你攻克 Linux 系统编程

    作者简介:宇文拓,近十年 Linux C/C++ 开发经验,现就职于某创业公司,负责服务器架构与系统设计.曾就职于某通信业知名美企,负责核心网和防火墙产品研发.在 GitHub 上发布了开源项目 An ...

  7. 攻克 Linux 系统编程

    课程亮点 完整学习路线图,系统掌握核心知识点 内核源码深入分析,知其然更知所以然 高频问题全面汇总,精准定位症结所在 八大主题商业案例,实操中获得拔高提升 专家推荐 曾与宇文拓共事五年,他对技术的钻研 ...

  8. 【Linux】Linux环境基础开发工具使用 —— yum | vim | gcc g++ | gdb | make makefile | 进度条 | git

    Linux环境基础开发工具使用 1. Linux软件包管理器yum 1.1 什么是软件包 1.2 软件安装三板斧 1.2.1 查看软件包 1.2.2 安装软件 1.2.3 卸载软件 2. vim 2. ...

  9. 2 Linux环境基础开发工具

    2 Linux环境基础开发工具 2.1 Linux软件包管理器yum 2.1.1 软件安装的方式 1. 源码安装 大多数开源的软件都是源码的形式.拿过来自己编译,安装. 优点:源码安装兼容性好. 缺点 ...

  10. 迅为IMX6ULL教程更新至2060+页,裸机开发,Linux系统移植,驱动开发,构建文明系统,QT开发,系统编程

    教程更新至2060+页 彻底让零基础的同学真正学会 更完善的教程更全面的讲解更高效的学习 第一部分 总领及学习指引:主要探讨的学习方法,我们将尽量用比较简洁的方式,让大家明白嵌入式系统知识体系,以及它 ...

最新文章

  1. 使用CInternetSession和CHttpFile读取网页内容
  2. ssd网络结构_SSD论文与代码详解
  3. Linux属于下面哪一种软件,【单选题】下面软件中属于自由软件开放源码的是( )。 A. Unix B. Linux C. Mi...
  4. win7 安装PyTorch
  5. 【Protocol Buffer】Protocol Buffer入门教程(八):Windows平台部署Protobuf环境
  6. opencv中的imwrite如何保存_如何把公众号的文章用文档保存到电脑中?
  7. 数据结构之单链表(头结点)的一些常用操作(增删改查逆)
  8. Modbus协议栈开发笔记之三:Modbus TCP Server开发
  9. win32_bios 的对象编辑器无法保存对象_怎样创建Femap对象
  10. 【已解决】清除linux系统的多余引导
  11. tensorflow越跑越慢_tensorflow sess.run()越来越慢的原因分析及其解决方法
  12. java pdf验签_java pdf验签
  13. 深入入门正则表达式(java) - 1 - 入门基础
  14. QSS按钮样式设置的坑,按下(pressed)时按钮颜色不变化
  15. 短信验证码和邮箱验证码
  16. 探讨6410的启动过程
  17. STM32学习之红外遥控
  18. 计算机中c盘标准规划为什么,为什么电脑c盘老是很小的空间··定期清理了
  19. JavaScript中if嵌套
  20. OpenWrt设置路由器联网(无线)

热门文章

  1. 雷军:小米10是首款支持8x8 MU-MIMO的手机
  2. OPPO Reno 3 Pro细节流出:同价位最轻薄的双模5G手机
  3. 小米史上最“短命”旗舰机:年初发布,官网已正式下架
  4. 瑞幸:现在卖24元一杯已经很便宜了 以后还要降价
  5. 千万不要被这些手机充电的谣言给误导了!现在了解还来得及
  6. 刘强东凌晨发内部信:取消底薪不是为了降低工资
  7. 谐音梗?小米推出首款短视频应用“朕惊视频”:专为年轻人打造
  8. 【LeetCode】 Best Time to Buy and Sell Stock I II III IV 解题报告
  9. python字典value排序_python字典按照value排序方法
  10. windows虚拟声卡直播_【韭菜爱镰刀】高性价比的录音/直播设备推荐