Linux命令之yum

yum [选项] [命令] [包]

  yum命令是RedHat和SUSE基于rpm的软件管理器。能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖关系,并且可以一次安装所有依赖关系。

  (扩展:域yum结局依赖关系,自动下载软件包,是基于C(client)/S(ftp/http/file)架构)

(1).常用选项

-h 显示帮助信息(基本每个命令不是-h就是- -help)
-t 容忍错误(忽略错误)
-c 配置文件路径
-R设置命令最长等待时间
-q 安静的操作
-v 详细的操作
-y回答所有问题都为”yes”

(2).常用命令

check-update 检查是否有软件包更新
clean 清除缓存数据
erase或remove 移除一个或多个软件包
deplist 列出软件包的依赖关系
info 显示关于软件包或组的详细信息
install 安装一个或多个软件包
list 列出一个或一组软件包
provides 查看指定内容的所属包
search 关键字搜索软件包
update 更新一个或多个软件包,改变软件设置和系统设置,系统版本和内核都升级
upgrade 更新一个或多个软件包,不改变软件设置和系统设置,系统版本升级,内核不变

(3).实例

注意:CentOS自带yum-*.Noarch.rpm。Ubuntu需要自行添加

clean的相关实例

[root@CentOS6 桌面]# yum clean all            //清除全部
已加载插件:fastestmirror,refresh-packagekit,security
Cleaning repos:base extras updates
清理一切
[root@CentOS6 桌面]# yum clean packages       //清除临时包文件(/var/cache/yum下文件)
已加载插件:fastestmirror,refresh-packagekit,security
Cleaning repos:base extras updates
0 package 文件已删除
[root@CentOS6 桌面]# yum clean headers         //清除rpm头文件
已加载插件:fastestmirror,refresh-packagekit,security
Cleaning repos:base extras updates
0 header 文件已删除

list的相关实例

yum list            //列出可以安装或更新和已经安装的rpm包,并且进行缓存。可以使用yum clean all清除缓存。
yum list installed  //已安装的包
yum list extras     //已安装且不在资源库的包

 看一下yum list的操作截图

设置下yum源,不然操作不下去了

[root@CentOS6 桌面]#rpm –Uvh http://repo.mysql.com/mysql-community-release-el5.rpm

install的相关实例

yum install *     //全部安装或升级,我看有些作者只要yum install不知道是怎么做到了
yum install mysql  //只安装mysql,这里可以替换包名,也可以使用mysql*,表示以mysql为开头的所有安装包

erase,remove,deplist的相关实例

yum deplist mysql//查看软件包的依赖关系,包名越详细输出越少。像我只输入mysql会列出所有以mysql开头的软件包,以及其依赖关系
yum erase mysql*//删除软件包及其依赖关系,mysql*删除的是以mysql为开头的所有软件包,所以后面跟随的软件包名越详细越好。
          //如果包名为mysql-libs,那只会删除mysql-libs与其依赖关系
yum remove mysql*//和erase一样

另外yum还有grouplist、groupinstall是对软件包组操作

[root@xuexi ~]# yum grouplist
[root@xuexi ~]# yum groupinstall "开发工具"

(4).扩展

1)配置本地yum源

2)配置网络yum源

在配置网络yum源之前,请自行备份。

[root@xuexi yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.aliyun.com/repo/Centos-7.repo
--2019-01-10 20:12:37--  http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 61.155.222.95, 61.155.222.97, 61.155.222.98, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|61.155.222.95|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”

100%[===================================================>] 2,523       --.-K/s 用时 0s      

2019-01-10 20:12:37 (63.3 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])

wget下载文件

-O 把下载的文件保存到另一个文件中

阿里yum配置文件地址:http://mirrors.aliyun.com/repo/Centos-7.repo

  注意:为什么需要备份呢?因为通过网络配置的yum源有可能是无法使用的。以阿里yum源为例,在/etc/yum.repo.d/CentOS-Base.repo中有"baseurl=[URL]"一项,此项中有两个变量$releasever和$basearch。根据以下两个命令代入,只有当完整的URL有效时,yum源才能使用。

[root@xuexi yum.repos.d]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)    //$releasever对应7.6.1810
[root@xuexi yum.repos.d]# uname -r
3.10.0-957.1.3.el7.x86_64    //$basearch对应x86_64

  如果网络yum源下载下载后不能使用,可以到相应的网站找到合适的版本(或大版本号内最新的版本),替换yum源中的变量(可以使用sed命令)。

  一样以阿里网络yum源为例:

[root@xuexi yum.repos.d]# sed -i 's/$releasever/7.6.1810/g' /etc/yum.repos.d/CentOS-Base.repo
[root@xuexi yum.repos.d]# sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/CentOS-Base.repo
[root@xuexi yum.repos.d]# yum clean all    //清空一下yum缓存
已加载插件:fastestmirror, langpacks
正在清理软件源: CentOS7 base extras updates
Cleaning up list of fastest mirrors

3)如果yum报错,请优先检查以下几个地方

1.有本地yum源时,检查光盘是否链接,是否挂载

2. 网络是否连接

3.配置文件中格式是否正确,字母、符号有没有少写,挂载点和配置文件中设置的是否一致。

 

posted @ 2018-03-21 14:21  苦逼运维  阅读(4273)  评论(0编辑  收藏  举报