yum install -y zlib zlib-devel 報錯問題及解決

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

總結

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: