一、背景
昨天在一台老的机器上安装一个MQ 项目,执行发布脚本时一直卡在那里,怀疑项目里gradle配置私有Maven仓库连接不上,想执行Telnet或NC测试一下,发现都没装,那就装一下,不就是一条yum语句的事吗,输入 yum install telnet,我了个去,报一堆错误,然后就是各种折腾,花了半天时间才搞定,其实一直以来对LInux软件包的管理机制都没怎么去了解过。
Error: Depsolving loop limit reached.
Error: Package: cloog-ppl-0.15.7-1.2.el6.x86_64 (@base/6)
。。。。。。。。。。。。。。。。
Not found
Error: Package: python-pip-7.1.0-1.el6.noarch (@epel/6)
Requires: python(abi) = 2.6
Removing: python-2.6.6-66.el6_8.x86_64 (@base/6)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
二、Yum介绍
Yum是RedHat、CentOS软件包管理器,Yum是用Python语言写成的(难怪报错时有一堆Python信息),它是基于RPM包进行管理,能够从指定服务器(也叫源)自动下载 RPM包并安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包。
三、Yum源配置
Yum仓库包含软件包以及对应的元数据(软件包的信息以及包与包的依赖关系),Yum仓库和Maven仓库差不多,一个是管理Linux RPM软件的,一个是管理Java Jar包的。
Linux系统Yum配置文件有两类
1、yum.conf
主配置文件,一般不需要改动,主要配置RPM包缓存目录,日志文件路径等。
2、yum.repos.d/*.repo
CentOS-Base.repo
参数说明: name:仓库名称 enable:是否启用当前仓库 base-url:仓库路径 gpgcheck:是否开启文件数字签名校验 gpgkey:验证RMP包密钥文件路径
四、Yum最基本几个命令
# 安装
yum install package
# 删除
yum remove package
# 清除缓存
yum clean package
# 重建缓存
yum makecache
五、实际案例的问题
有段时间阿里云的源连不了,我更新了CentOS-Base.repo文件,更改了地址,换成连接el7的源,但其实我系统还是el6的,el6不能用el7的源,最后把源换回el6(见上图)的就好了。
注:我用lsb_release -a 来查看版本,是CentOS7的,然后认为源没有问题,但用uname -a 查是EL6,这里有什么区别其实我还没搞清楚,先贴在这里,有时间再研究一下。
?注:文章里写的昨天指的是写这篇文章的时候,因为我的文章首先会在公众号上发布,名称与这里一样。
|