目录
- yum install -y zlib zlib-devel 报错
- 查看zlib包是否重复
- 移除一个zlib包
- 再次安装
- yum 安装程序找不程序安装包,诸如类似 No package zlib-devel available报错
- 问题现象
- 问题解决
- 总结
yum install -y zlib zlib-devel 报错
查看zlib包是否重复
$ rpm -qa | grep zlib
例:
[root@VM_0_4_centos ~]# rpm -qa | grep zlib zlib-1.2.7-15.el7.i686 zlib-1.2.7-15.el7.x86_64
移除一个zlib包
[root@VM_0_4_centos ~]# yum remove zlib-1.2.7-15.el7.i686
发行版中的i386/i686/x86-64的区别:
i386用来处理32位系统,i686是i386的下集;x86-64用来处理64位系统。
linux发行版中的i386/i686/x86-64各自含义:
- i386通常被用来作为对Intel(英特尔)32位微处理器的统称;
- i386的子集包含i686,i686适用于Pentium Pro,也适用于K7架构的Athlon;
- x86-64,又称“AMD64”或“x64”,是一种64位元的电脑处理器架构。它是建基于现有32位元的x86架构,由AMD公司所开发;
再次安装
[root@VM_0_4_centos ~]# yum install -y zlib zlib-devel
yum 安装程序找不程序安装包,诸如类似 No package zlib-devel available报错
问题现象
在root权限下安装zlib-devel包,
# yum install -y zlib zlib-devel
出现如下报错,
Loaded plugins: langpacks, product-id, search-disabled-repos
No package zlib-devel available.
Nothing to do
表明yum找不到zlib-devel安装包,这说明yum不能正常访问存贮zlib-devel的安装包的镜像。
不同版本CentOS系统,yum访问http://mirrors.163.com/镜像上不同位置的程序安装包。
这样的访问是由相应的repo配置文件来实现。配置错误的repo文件导致CentOS系统不能正确访问的163镜像,也就安装不了相应的程序包。
问题解决
经网上搜索,解决方案是,相应的CentOS的系统版本,要有正确对应的CentOSn-Base.repo文件(n或为5,或6,或7),同时要修改CentOSn-Base.repo文件中的bug。
具体过程如下:
1、查看系统版本和位数
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.4 (Maipo)
CentOS系统为7.4版本。因此要下载CentOS7-Base.repo文件。
2、下载正确版本CentOS7-Base.repo文件并修改bug
# cd /etc/yum.repos.d
清除系统已有yum缓存内容
# yum clean all
下载CentOS7-Base-163.repo文件,一定要存于 /etc/yum.repos.d文件夹中:
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
将文件中的$releasever
全部替换成7
:
# sed -i 's/$releasever/7/g' ./CentOS7-Base-163.repo
本人在排错过程中,下载了repo对应的版本5文件CentOS5-Base-163.repo,也将文件中$releasever改为5,运行yum安装命令出现了如下错误。
图中显示得很清楚,镜像的网址http://mirrors.163.com/centos/5/addons/x86_64/repodata/repomd.xml没有找到,这是CentOS系统版本和repo版本不相匹配的原因。
然后再执行:
# yum makecache
最后成功安装:
# yum install -y zlib zlib-devel
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。