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。
推薦閱讀:
- 教你如何在Mac上安裝VMware Fusion和CentOS-7
- Docker制作鏡像的完整過程
- VMware Workstation Pro 16搭建CentOS8虛擬機集群的圖文教程
- Centos安裝python3與scapy模塊的問題及解決方法
- Linux環境下安裝nginx教程