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/镜像上不同位置的程序安装包。这样的访问是由相应的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/.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/centos/5/addons/x86_64/repodata/repomd.xml没有找到,这是CentOS系统版本和repo版本不相匹配的原因。

然后再执行:

# yum makecache

最后成功安装:

# yum install -y zlib zlib-devel

更多推荐

yum 安装程序找不程序安装包,诸如类似 No package zlib-devel available 报错的解决