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.配置文件中格式是否正确,字母、符号有没有少写,挂载点和配置文件中设置的是否一致。