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. SpringMVC处理Date类型的成员变量方法
  2. 七天学会NodeJS
  3. 分布式存储的三个基本问题
  4. python基础教程 第3版 epub_铃声多多安卓版下载
  5. 混合多云架构_使用混合多云每个人都应避免的3个陷阱(第4部分)
  6. kali linux 开启配置ssh服务
  7. html中hr的各种样式使用
  8. SQLite数据库损坏修复
  9. 6.1行为型模式--模板方法模式
  10. 【你了解什么是算法设计与分析吗?】
  11. C# 读写西门子PLC数据,包含S7协议和Fetch/Write协议,s7支持200smart,300PLC,1200PLC,1500PLC...
  12. 在线教育如何应对流量洪峰?阿里云专家给出了“上云+云数据库”的答案!
  13. 美团笔试题(5)考试策略
  14. c语言实训报告 总结与展望,c语言实训报告总结范文四篇合集
  15. php 验证码一直不对,php验证码错误
  16. setup maven plugin connection
  17. 浙江大学计算机学院就业办,浙江大学就业信息网
  18. 这样吃橙子才最健康,90%的人不知道的秘密!
  19. NLP入门之综述阅读-基于深度学习的自然语言处理研究综述
  20. Mysql出现问题:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corres解决方案

热门文章

  1. 2019广州车展:国产版特斯拉Model 3正式亮相
  2. 小米真香产品被友商怼:只有USB2.0接口 怎么播高码率的视频?
  3. 奥斯卡公布最佳动画长片初选名单 《哪吒》等32部动画入选
  4. iPhone至少还要三年才能使用苹果自研5G调制解调器
  5. 华为年度旗舰Mate 30 Pro真机现身,既惊喜又失望...
  6. 七月刚入职的阿里测试开发岗-高频知识整理,内附面试题答案
  7. 除去WebView默认存在的一定像素的边距问题
  8. 最新版Zookeeper常用命令总结(收藏吃灰系列)
  9. mysql mongodb binlog_订阅MongoDB的数据变更比解析mysql的binlog更简单
  10. 通过new创建xml文件_C#通过SharpZipLib库创建压缩文件