Linux软件包管理器 – yum

正文开始@Assassin

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缓存
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐