<iframe src="//music.163.com/outchain/player?type=2&id=29577984&auto=0&height=66" frameborder="no" marginwidth="0" marginheight="0" width="530" height="86"></iframe>
今天在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
注:这一步可能需要很久,如果不愿意等,可以先不进行。