Linux命令之yum
yum [选项] [命令] [包]
yum命令是RedHat和SUSE基于rpm的软件管理器。能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖关系,并且可以一次安装所有依赖关系。
(扩展:域yum结局依赖关系,自动下载软件包,是基于C(client)/S(ftp/http/file)架构)
(1).常用选项
1 2 3 4 5 6 7 | -h 显示帮助信息(基本每个命令不是-h就是- -help) -t 容忍错误(忽略错误) -c 配置文件路径 -R设置命令最长等待时间 -q 安静的操作 -v 详细的操作 -y回答所有问题都为”yes” |
(2).常用命令
1 2 3 4 5 6 7 8 9 10 11 | check-update 检查是否有软件包更新 clean 清除缓存数据 erase或remove 移除一个或多个软件包 deplist 列出软件包的依赖关系 info 显示关于软件包或组的详细信息 install 安装一个或多个软件包 list 列出一个或一组软件包 provides 查看指定内容的所属包 search 关键字搜索软件包 update 更新一个或多个软件包,改变软件设置和系统设置,系统版本和内核都升级 upgrade 更新一个或多个软件包,不改变软件设置和系统设置,系统版本升级,内核不变 |
(3).实例
注意:CentOS自带yum-*.Noarch.rpm。Ubuntu需要自行添加
clean的相关实例
1 2 3 4 5 6 7 8 9 10 11 12 | [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的相关实例
1 2 3 | yum list //列出可以安装或更新和已经安装的rpm包,并且进行缓存。可以使用yum clean all清除缓存。 yum list installed //已安装的包 yum list extras //已安装且不在资源库的包 |
看一下yum list的操作截图
设置下yum源,不然操作不下去了
1 | [root@CentOS6 桌面]#rpm –Uvh http://repo.mysql.com/mysql-community-release-el5.rpm |
install的相关实例
1 2 | yum install * //全部安装或升级,我看有些作者只要yum install不知道是怎么做到了 yum install mysql //只安装mysql,这里可以替换包名,也可以使用mysql*,表示以mysql为开头的所有安装包 |
erase,remove,deplist的相关实例
1 2 3 4 | yum deplist mysql //查看软件包的依赖关系,包名越详细输出越少。像我只输入mysql会列出所有以mysql开头的软件包,以及其依赖关系 yum erase mysql* //删除软件包及其依赖关系,mysql*删除的是以mysql为开头的所有软件包,所以后面跟随的软件包名越详细越好。 //如果包名为mysql-libs,那只会删除mysql-libs与其依赖关系 yum remove mysql* //和erase一样 |
另外yum还有grouplist、groupinstall是对软件包组操作
1 2 | [root@xuexi ~]# yum grouplist [root@xuexi ~]# yum groupinstall "开发工具" |
(4).扩展
1)配置本地yum源
2)配置网络yum源
在配置网络yum源之前,请自行备份。
1 2 3 4 5 6 7 8 9 10 11 | [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源才能使用。
1 2 3 4 | [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源为例:
1 2 3 4 5 6 | [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.配置文件中格式是否正确,字母、符号有没有少写,挂载点和配置文件中设置的是否一致。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性