CentOS6.5 yum 出现 Error: requested datatype primary not available 的一个解决方案和手动安装【英文】man手册

        前几个月拿到的CentOS6.5让我很是沮丧,原因是连最基本的“man”命令都没有,提示:command not found。

        众所周知,man 手册是学习和查找 Linux 命令的利器。于是没法忍的我上网搜了一通如何安装 man 手册,出来的结果基本都是安装中文 man 手册的,很是让我失望。

        后来终于找到一个比较有建设性的解决办法,其实就是用 yum 来安装(菜鸟新手不懂莫见怪),命令如下:yum install -y man(其中 -y 参数表示对于所有提问都回答“yes”)

        但是让我无奈的地方又出现了,yum 频频报各种错,先是源的问题,然后又试着上网找了N种方法,把各种所谓 mirrorlist 修改个遍。再后来干脆是 Error: requested datatype primary not available,然后又搜了一通(包括知乎和stackoverflow,都没有能解决我问题的方案),出来的结果也是让我失望,清一色(这些人也是够可恶,一个人发了几百个人直接 copy 粘贴)如下:




        于是我照着解决方案重复数十次,问题依然存在(或者这真的能解决一部分人的原因,但不会是百分百,写这些话的目的是想让遇到跟我一样问题的人多一种尝试方案,希望不要吐槽)。

        好了,现在主要问题迁移到解决 yum 的报错了。今天来了个新的虚拟机,在同事那里跑得好好的,在我这里又出现同样的问题,于是我考虑是网络的问题。之前我一直使用的是桥接模式,同时对 /etc/sysconfig/network-scripts/ifcfg-eth0 文件作了修改,能用,因此我一直没有考虑到是网络的问题。今天我把虚拟机设为 NAT 模式,具体做法是:VMware 选项  虚拟机 --> 设置 --> 网络适配器 --> NAT模式。然后点击 VMware“编辑”选项,查看虚拟网络编辑器,按照下图所示顺序 [1 --> 2 ] 操作,查看 VMnet8 的 NAT 设置:


        然后把本机网络适配器的 VMnet8 适配器作如下修改,其中红色标注部分为上图 NAT 设置红色标注部分的网关IP:


        最后重启 CentOS,这下 yum 应该能正常安装了,可以尝试一下:yum install -y man(或者 gcc 或者其他)。

        如果还不行,试着卸载 yum 再重装,反正我是做了这一步,因为这过程中 yum 的配置都被我玩坏了,卸载重装 yum 中途也是磕磕碰碰,网上很多没有建设性的方案。话不多说直接上干货。

        卸载原有的 yum:rpm -qa | grep yum | xargs rpm -e --nodeps (其中 rpm -qa | grep yum 是查看当前已经安装的含有“yum”的 rpm 包,-e(erase) 是删除 rpm 包,最后 --nodeps 是忽略依赖关系删除)

        重装 yum,要下载 3 个 rpm 包(不唯一,但最好找最新的,后面会讲到怎么找):


        几乎可以通过 http://vault.centos.org/ 找到所有的 CentOS  rpm 包,点进去之后选择对应的版本,如 CentOS6.5 选择 6.5 目录然后是 os目录,至此,会有 i386 和 x86_64 两种选择,这得看你的 CPU 属于哪一种,可以通过命令:uname -a 查看,我的是 x86_64 所以选择这个(虽然不知道选错是否能行,但是还是觉得对应会好一点,毕竟它们存在有它们的意义,网上的其他解决方案都不会分类讨论,因此我碰了很多壁,经常会提示 rpm 包无法安装)。然后是 Packages 目录,所以最后我找我机子对应的 rpm 包的目录为:http://vault.centos.org/6.5/os/x86_64/Packages/  最后在这成千上万个 rpm 包中找到你想找的,通常一种 rpm 包会有多个(不同版本),找时间最新的就好。下载方法有 2 个:1 直接下载到本机,然后拖到虚拟机里; 2 在网页点击 rpm 包复制对应的 URL ,在虚拟机中使用 wget 这个 URL 下载,如: wget http://vault.centos.org/6.5/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm  

当上述3个 yum 的 rpm 包都下载好后,然后安装:rpm -ivh yum* --nodeps(同样加上 --nodeps 忽略依赖,不加可能会报错)。至此,yum 卸载重装成功!

        接下来就可以使用 yum install -y man 指令来自动安装 man 了(当然你也可以使用上述安装 yum 的方法来,下载 man 的 rpm 包手动安装,举一反三,不再赘述)。但是安装成功后你可能会发现 man 很多命令会没有对应的 page,原因是缺少 man-pages,可以使用指令:rpm -qa | grep man-pages 来查看是否安装了 man-pages 的 rpm 包,如果没有,那么你需要在上面提到的下载 rpm 包的资源站上面下载 man-pages 的 rpm 包进行安装。安装完成后,你会发现,man 一个指令,该有的都有了!这时你可以尝试上网搜索配置中文 man 的方法了!

        以上纯属个人在第一使用 CentOS 过程中遇到的蛋疼问题,这一路真的苦,看遍了很多博客和 stackoverflow 上的外文解答,尝试过无数次,次次想着放弃,过了一段时间还是不服,想再试试,今天终于成功了值得纪念。

        如果你也遇到同样的问题,希望我的这篇博客能够帮到你;如果你觉得我的问题很 low,求勿喷。

        最后推荐一个中文的 Linux 命令学习网站,作用和 man 手册类似:http://man.linuxde.net/

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值