今天在Red Hat上安裝軟件時,發現需要依賴軟件,然而在用sudo yum指令時,出現了下面的錯誤:
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
出現這個問題的原因是:redhat未注冊,連接redhat官方軟件源時,對未注冊的用戶不提供下載軟件包的權限。
解決辦法:因為centOS和redhat “本自同根生”,因此可以使用centOS的軟件源。
1.對系統的檢測【重要】
這一步往往不能引起使用者的重視。然而,忽略這一步將會在后續步驟上浪費時間。請記住:磨刀不誤砍柴工。
①查看系統版本號:cat /etc/redhat-release
結果為:Red Hat Enterprise Linux Server release 6.5 (Santiago)
②查看系統位數:arch
結果為:x86_64
③檢查是否安裝yum包: rpm -qa |grep yum
注:使用了管道命令。
2.刪除自帶的yum包
①不檢查依賴,直接刪除rpm包:rpm -qa|grep yum|xargs rpm -e --nodeps
②查詢確認:rpm -qa |grep yum
如果查詢結果為空,則說明刪除yum成功。
3.安裝新yum
①下載yum包
這一步以第一大步為基礎。
如果redhat版本為6.+,且系統位數為x86_64,則執行如下的下載命令:
wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
如果redhat版本為6.+,且系統位數為i386,則執行如下的下載命令:
# wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm # wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-3.2.29-73.el6.centos.noarch.rpm # wget http://mirrors.163.com/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm
注:由於centOS的軟件源也一直在更新,如果上述下載命令找不到文件,則進入 http://mirrors.163.com/centos 查看對應的文件。總之,最終下載完成這3個文件就可以了。其他版本的yum包下載以此類推。
②安裝yum包
rpm -ivh yum-*
這一步極有可能出現錯誤。
a. 如果錯誤為:
error: Failed dependencies: libc.so.6 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libc.so.6(GLIBC_2.0) is needed by yum-metadata-parser-1.1.2-16.el6.i686 libc.so.6(GLIBC_2.1.3) is needed by yum-metadata-parser-1.1.2-16.el6.i686 libglib-2.0.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libpthread.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libpython2.6.so.1.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libsqlite3.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libxml2.so.2 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libxml2.so.2(LIBXML2_2.4.30) is needed by yum-metadata-parser-1.1.2-16.el6.i686 python-urlgrabber >= 3.9.1-10 is needed by yum-3.2.29-73.el6.centos.noarch
說明軟件包不兼容。比如我是64位的系統,下載了32的軟件包。
b.如果錯誤為:
warning: yum-metadata-parser-1.1.2-16.el6.x86_64.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-73.el6.centos.noarch
則是 依賴條件不滿足 的問題。
按照如下步驟操作即可:
步驟一:rpm -qa|grep python
發現列表中python-urlgrabber-3.9.1-9.el6.noarch ,小於3.9.1-10
步驟二:卸載python-urlgrabber-3.9.1-9.el6.noarch:rpm -e python-urlgrabber-3.9.1-9.el6.noarch
步驟三:下載: wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-urlgrabber-3.9.1-11.el6.noarch.rpm
步驟四:安裝:rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm
4.更改yum源
①下載yum配置文件
cd /etc/yum.repos.d wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
②配置
sudo vim CentOS6-Base-163.repo
把$releasever替換成現有系統的版本號(6)
在命令模式下使用vim替換命令(更多vim知識 >>>)
:%s/$releasever/6/g
退出保存
5.重建緩存
clean all #清除原有緩存 sudo yum makecache #重建緩存,以提高搜索安裝軟件的速度
6.測試
sudo yum seach git
7.更新系統
sudo yum update
注:這一步可能需要很久,如果不願意等,可以先不進行。