問題背景:
起源於試圖使用yum安裝mongodb。原因是,通過安裝包安裝的時候,虛擬機中的系統,總是會提示各種依賴版本低於要求的提示,然後是無限的手動安裝更新。。。
所以無奈,只好使用yum來進行安裝。但redhat系統中yum,搜索不到軟件,後查知需要配置yum源。再然後,就是找了一大堆不靠譜的文章,各種嘗試失敗,最後總算有個準確一些的文章,中間又自行處理了一個錯誤,所以這裏作爲記錄,以供後面查找。
參考文章:
[1] rhel6配置yum源爲網易鏡像:
http://www.jianshu.com/p/446e3fe7d710
[2] 網易開源鏡像站:
http://mirrors.163.com/centos/6/os/x86_64/Packages/
[3]redhat 配置本地yum源163yum源epel 源,無需卸載yum!無須拷貝ISO
http://www.cnblogs.com/dadong616/p/5586697.html
文章[1]中所說的先卸載yum再進行安裝時最常見/一搜一堆文章的方法。。。 不過[3]提供了一種無須卸載的方式,其實就是直接修改yum源的配置。
下面主要介紹我使用的第一種方法,參考文章[1]。
文章[1]中絕大部分步驟都沒有問題,按順序操作即可,但有幾個需要特別注意的事項:
由於當前是2017-07-24,所以我下載的文件版本爲:
python-iniparse-0.3.1-2.1.el6.noarch.rpm
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
yum-3.2.29-81.el6.centos.noarch.rpm
安裝命令和過程與[1] 中的一致,只是替換文件爲上述版本。
執行步驟:
1、刪除本地已安裝的yum
rpm -aq|grep yum|xargs rpm -e --nodeps
2、安裝剛纔下載的rpm
rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
注意最後兩個包必需同時安裝,否則會相互依賴
另外,在最後一步,執行rpm安裝yum-3.2.29安裝的時候,有了錯誤提示:
[root@bogon softwares]# rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
warning: yum-3.2.29-81.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
error: Failed dependencies:
python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-81.el6.centos.noarch
如上,錯誤信息比較明顯,是還缺失了python-urlgrabber,3.9.1-10版本以上的依賴,所以,從[2]中查到對應的版本:
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
使用rpm執行安裝:
rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
但又一次報錯:
warning: python-urlgrabber-3.9.1-11.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
file /usr/lib/python2.6/site-packages/urlgrabber/grabber.py from install of python-urlgrabber-3.9.1-11.el6.noarch conflicts with file from package python-urlgrabber-3.9.1-8.el6.noarch
file /usr/lib/python2.6/site-packages/urlgrabber/grabber.pyc from install of python-urlgrabber-3.9.1-11.el6.noarch conflicts with file from package python-urlgrabber-3.9.1-8.el6.noarch
file /usr/lib/python2.6/site-packages/urlgrabber/grabber.pyo from install of python-urlgrabber-3.9.1-11.el6.noarch conflicts with file from package python-urlgrabber-3.9.1-8.el6.noarch
file /usr/lib/python2.6/site-packages/urlgrabber/progress.pyc from install of python-urlgrabber-3.9.1-11.el6.noarch conflicts with file from package python-urlgrabber-3.9.1-8.el6.noarch
file /usr/lib/python2.6/site-packages/urlgrabber/progress.pyo from install of python-urlgrabber-3.9.1-11.el6.noarch conflicts with file from package python-urlgrabber-3.9.1-8.el6.noarch
坑爹啊。。好在是有conflicts with的提示,表明是與歷史版本衝突了,在rpm安裝的命令中加入--force 強制安裝嘗試,安裝成功:
rpm -ivh --force python-urlgrabber-3.9.1-11.el6.noarch.rpm
warning: python-urlgrabber-3.9.1-11.el6.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:python-urlgrabber ########################################### [100%]
最後,再執行yum-3 的rpm安裝,命令和執行成功提示如下:
rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
warning: yum-3.2.29-81.el6.centos.noarch.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:yum-plugin-fastestmirro########################################### [ 50%]
2:yum ########################################### [100%]
至此,yum的安裝過程結束。
但此時,還是無法搜到軟件,按照[1]所說,進行rpm源配置即可。
4.更新repo文件
mv /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo.bak
vi /etc/yum.repos.d/rhel-debuginfo.repo
內容爲:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
#[addons]
#name=CentOS-$releasever - Addons
#baseurl=http://mirrors.163.com/centos/6/addons/$basearch/
#gpgcheck=1
#gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6./centosplus/$basearch/
gpgcheck=1
enabled=0
配置完成後,使用yum install php進行驗證,安裝成功。
【經驗】yum的安裝過程中,很有可能還會出現其他的問題,而且大部分文章都是相互抄來抄去,甚至不說明自己的系統版本,有些都還有粘貼錯誤,導致及其的坑爹,浪費很多時間;所以,一定要多分析,而且儘量找到文章的源頭,同時自己也要主動分析報錯提示,才能夠真正解決。