linux——rhel安装yum

在进行下面的操作之前,一定要确保网络正常,如果没有网络,下面的所有操作一个都不能实现。(下次会写个本地源的配置,这个就可以离线的状态下进行,需要用到系统的镜像文件,安装好系统之后不要删掉。)

  首先配置网络源需要一些安装包,先简单罗列出来:

python-iniparse-0.3.1-2.1.el6.noarch.rpm 
python-urlgrabber-3.9.1-11.el6.noarch.rpm 
yum-3.2.29-73.el6.CentOS.noarch.rpm 
yum-metadata-parser-1.1.2-16.el6.x86_64.rpm 
yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

  可以到这个网站直接下载:http://mirrors.163.com/centos/6/os/x86_64/Packages/

现在基本工作已经做好了,接下来就进行安装和配置:

  1、安装之前要先卸载系统本来的yum源,执行以下命令

[root@localhost ~]# rpm -aq|grep yum|xargs rpm -e –nodeps

  2、查询一下是否完全卸载了

[root@localhost ~]# rpm -qa |grep yum

  执行完这一条命令没有任何信息提示,就表示已经完全卸载了。(啰嗦一句,给刚接触Linux的提示一下,其他的可以飘过。在Linux下如果命令执行成功是不会出现任何提示,有错误才会提示)

  3、先安装这下面的两个包

[root@localhost ~]# rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm 
[root@localhost ~]# rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

  这两个包安装一般都不会出现问题,直接就通过(我是没出现问题,其他人如果出现问题,可以自行百度一下解决办法)

  4、接下来尝试安装这两个包,一定要一起安装,也就是要在一条命令中执行,不可以跟上面的两个包一样分两条指令执行(网上的教程说是包的依赖关系)

[root@localhost ~]# rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

  如果能直接通过是最好的结果,可以省略不少麻烦,直接跳到第6步执行配置文件内容的替换。

  不过应该不会那么顺利,我这里的错误提示是缺少了一个包的依赖

warning: yum-3.2.29-73.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-73.el6.centos.noarch

  在 >= 左边的就是提示缺少依赖的包,找到名字为python-urlgrabber+版本号.rpm的包进行安装。这个提示,之前找到的教程是没有的,可能当时他们不存在这个问题。

  还有可能会有其他的包依赖问题,根据个人的具体情况,找相应的安装包。

  5、安装这个缺少的依赖包

[root@localhost ~]# rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

  这里也可能会出现问题,当然没问题最好了。

  这个网络yum源的配置是自己配置了两次,第一次是没有完全删除系统自带的yum源,到了这一步提示安装包冲突,之后就是完全删除了系统自带的yum源,重新从第3步开始安装一次,问题就解决了。第二次也就是按照现在的步骤,一开始就完全删除了系统自带的yum源,但是到了这一步还是提示安装冲突,网上的解决办法就是强制安装,也没有找到其他办法,所以也只有执行强制安装了。

  提示信息都是这个

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-9.el6.noarch

  强制安装缺少的依赖包

[root@localhost ~]# rpm -ivh –force python-urlgrabber-3.9.1-11.el6.noarch.rpm

  安装完之后,再执行第4步,应该就可以完全通过了。

  6、更改配置文件 rhel-debuginfo.repo

  更配置文件之前先进行备份(新手一定要记住这一点,更改系统配置文件之前一定要备份)

[root@localhost ~]# cp /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo.bak 
或者cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak(我用的第二个)

  编辑该配置文件

[root@localhost ~]# vim /etc/yum.repos.d/rhel-source.repo或者vim /etc/yum.repos.d/CentOS-Base.repo(我用的第二个)

  可能也有一些人装了系统之后,没有vim可以使用,但是vi是一定有的,所以上面的指令如果是出错提示没有该命令,可以用vi打开

[root@localhost ~]# vi /etc/yum.repos.d/rhel-source.repo

  (vi或者vim的使用:上面的命令执行完成之后,会出现一个文本的编辑界面,按 i 键进入编辑模式,方向键进行光标移动,这里的复制和粘贴使用的是Ctrl+Shift+C、Ctrl+Shift+V ,然后按ESC键退出编辑模式,输入 “:wq” ,保存退出。)

  将这里面的内容全部删掉,替换成以下内容 
[base] 
name=CentOS-$releasever - Base 
baseurl=http://mirrors.163.com/centos/6/os/$basearch/ 
gpgcheck=1 
gpgkey=http://mirrors.163.com/centos/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/RPM-GPG-KEY-CentOS-6

    [extras]
    name=CentOS-$releasever - Extras
    baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
    gpgcheck=1
    gpgkey=http://mirrors.163.com/centos/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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

  这里也有要注意的地方,还是文件名的问题,版本更替是一定的会有的,在此过程中可能会产生文件名的更改,也许我现在可行的方法,到你用的时候就失效了,这时候你就得自己去核实路径文件名的正确与否了。因为我在这里也出过错,所以才能指出来,之前那些教程的baseurl路径都是baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/,以前是命名为6.0,现在已经更改为6,所以之前这个文件改好之后,在下一步进行验证的时候,也是提示连接失败。

  这些内容更替好之后,保存退出就可以了。

  7、清除原来的源配置

[root@localhost ~]# yum clean all

  8、安装现在的yum源,这一步也是测试新安装的yum源有没有安装成功

[root@localhost ~]# yum install yum

  如果这条命令能执行成功,就说明新安装的yum源已经正确配置好了。

  9、更新yum源到本地

[root@localhost ~]# yum list

我到这里就已经完全没有问题了,如果有其他问题,到网上找找解决办法。这个可能也会随着时间的推移而失效,所以能提供只是个大概的方向,具体细节只能具体分析。

yum源使用的几个报错小总结

 

服务器上的yum突然不好使用,使用yum时有如下几个保持,解决方案如下:

1)Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge.
[root@bastion-IDC src]# yum list
......
Could not retrieve mirrorlist http://mirrorlist.repoforge.org/el6/mirrors-rpmforge error was
14: PYCURL ERROR 7 - "couldn't connect to host"
http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/repodata/repomd.xml: [Errno 14] 
PYCURL ERROR 7 - "couldn't connect to host"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge. 
Please verify its path and try again

解决办法:(或者把/etc/yum.repos.d下的文件全部删除,然后将能正常使用yum的同类服务器的这个目录下的文件全部拷贝过来,然后yum clean all 和yum makecache 即可)
下载新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@bastion-IDC src]# cd /etc/yum.repos.d/
其实就是将yum源更改为阿里云的yum源,操作如下:

1)centos5.*的下载连接:
[root@bastion-IDC yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

2)centos6.*的下载连接:
[root@bastion-IDC yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

3)centos7.*的下载连接:
[root@bastion-IDC yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

然后执行以下命令:
[root@bastion-IDC yum.repos.d]# rpm -e rpmforge-release --nodeps
-------------------------------------------------------------------------------------------------------------
如果报错:
error: package rpmforge-release is not installed

解决办法:安装这个源
下载地址:https://pan.baidu.com/s/1pKBtm11
提取密码:erte
[root@bastion-IDC yum.repos.d]# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
-------------------------------------------------------------------------------------------------------------

[root@bastion-IDC yum.repos.d]# yum clean all 
[root@bastion-IDC yum.repos.d]# yum makecache                                   //将服务器上的软件包信息缓存到本地,以提高搜索安装软件的速度
[root@bastion-IDC yum.repos.d]# yum update

最后再次使用yum就ok了
[root@bastion-IDC yum.repos.d]# yum list

2)UnicodeDecodeError: 'ascii' codec can't decode ... ordinal not in range

1
2
3
4
5
6
7
8
9
10
11
在使用yum部署环境的时候,出现了报错:
UnicodeDecodeError: 'ascii' codec can't decode ... ordinal not in range
解决办法:
[root@kvmserver ~]# ll /var/lib/rpm/*db*
-rw-r--r-- 1 root root 73728 Aug 15 14:52 /var/lib/rpm/__db.001
-rw-r--r-- 1 root root 270336 Aug 15 14:52 /var/lib/rpm/__db.002
-rw-r--r-- 1 root root 1318912 Aug 15 14:52 /var/lib/rpm/__db.003
-rw-r--r-- 1 root root 778240 Aug 15 14:52 /var/lib/rpm/__db.004
  
[root@kvmserver ~]# rm -f __db.*
[root@kvmserver ~]# yum clean all

3)Error: xz compression not available 

1
2
3
4
5
6
7
测试服务器(centos6.5)经过一段时间的折腾,有一天在上面进行yum操作时突然出现下面的报错:
Error: xz compression not available
最后经过一番排查,发现原因是之前安装软件时错误安装了centos7版本的软件,软件版本不兼容,这才导致了yum不可用。
解决措施:
首先查看/root/install.log安装日志,找出版本不兼容软件,然后将其卸载就ok了。
另外:如果因为安装epel导致此类问题,可以进行如下删除操作:
# rm -rf /etc/yum.repos.d/epel*
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
 
 
 
 

公司提供的CentOS VM中,/etc/yum.repos.d 下 只有一个build.repo,其中提供的yum 源只有公司内部的几个源,很多包在这些源中都找不到。于是要添加别的源,下面的帖子中介绍了如何在CentOS中添加中科大、搜狐和163的yum源:http://www.husw.net/blog/post/1386/。摘录如下:

本文章介绍的yum源支持的版本是CentOS 6系列,理论上支持RHEL6系列。
更新方法如下:
先进入yum源配置目录

cd /etc/yum.repos.d
备份系统自带的yum源
mv CentOS-Base.repo CentOS-Base.repo.save


下载其他更快的yum源
中科大的yum源:
wget http://centos.ustc.edu.cn/CentOS-Base.repo


163的yum源:
wget http://mirrors.163.com/.help/CentOS-Base-163.repo


sohu的yum源
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo


更新完yum源后,建议更新一下,使操作立即生效
yum makecache
 
[yasi]:
在执行最后一步,即yum makecache的时候,遇到错误:
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Repository contrib is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * addons: mirrors.163.com
 * base: mirror.metrocast.net
 * extras: mirror.beyondhosting.net
 * fasttrack: centos.vipernetworksystems.com
 * updates: centos.vipernetworksystems.com
http://mirrors.163.com/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: addons. Please verify its path and try again
原因是,http://mirrors.163.com/centos/6/addons/x86_64/repodata/repomd.xml和 http://mirror.centos.org/centos/6/addons/x86_64/repodata/repomd.xml 确实不存在,可能被更新掉了。解决办法是,找到可用的URL替换之,或者把相应的.repo文件中的项整个注释掉。这里我采用后者。
 
例如,在CentOS-Base-163.repo中,注释掉整个addon项
#[addons]
#name=CentOS-$releasever - Addons - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
#gpgcheck=1
#pgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
 
在CentOS-Base-sohu.repo中注释掉下面的内容
#[addons]
#name=CentOS-$releasever - Addons - sohu.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirrors.sohu.com/centos/$releasever/addons/$basearch/
#gpgcheck=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5CentOS-Base-sohu.repo
 
然后,再执行yum makecache。之后,yum就可以找到我要安装的包了,比如gdb, subversion, gcc-c++ 等。
 
注意:
有时用yum list xxx找不到某个包,可用尝试用yum search xxx。
如,yum list vim 就报告 Error: No matching Packages to list。而 yum search vim 则返回:
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-minimal.x86_64 : A minimal version of the VIM editor
 
 
 

YumRepo Error: All mirror URLs are not using问题解决

 (2013-01-24 02:55:57)
标签: 

yumrepo

 

error

 

mirror

 

问题

 

解决

分类: 工作
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

今天帮同事搭建环境时碰到yum更新出问题了,报如下错误:

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. $releasever is not a valid release or hasnt been released yet/
removing mirrorlist with no valid mirrors: /var/cache/yum/base/mirrorlist.txt
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

从字面意思是看是不能正确连接到http或是ftp的真实地址上。

1.有可能是防火墙阻碍了出网http请求或是ftp请求,请检查网关防火墙。

2.有可能是dns不对,无法正常解析,换成8.8.4.4

3.系统取不到Release号

我这里碰到真正的原因是就是3,系统读取不到Release号。

正常一般可以看到版本号

 # lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.2 (Final)
Release:        6.2
Codename:       Final

但是同事的环境上确是,原因就不说了,又想骂人了,哎。

 LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: n/a
Description:   n/a
Release:        n/a
Codename:       n/a

而/etc/yum.repos.d下的*.repo源文件中都是baseurl都是带变量的

baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/

所以yum去尝试读取xml文件自然失败了。

 # wget http://mirrors.163.com/centos/%releasever/os/x86_64/repodata/repomd.xml
--2013-01-24 10:50:10-- http://mirrors.163.com/centos/%releasever/os/x86_64/repodata/repomd.xml
Resolving mirrors.163.com... 123.58.173.89, 123.58.173.106
Connecting to mirrors.163.com|123.58.173.89|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2013-01-24 10:50:11 ERROR 404: Not Found.

所以需要修改*.repo源文件中将$releasever变量全替换成6即可正常yum了。

  cat /etc/yum.repos.d/CentOS6-Base-163.repo
# CentOS-Base.repo
[base]
name=CentOS-6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-6 - Updates - 163.com
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-6 - Extras - 163.com
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-6 - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/6/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

看看这次更新缓存就成功了。

 # yum makecache
base                                   | 3.7 kB     00:00    
base/filelists_db                      | 5.9 MB     00:04    
base/primary_db                        | 4.5 MB     00:03    
base/other_db                          | 2.6 MB     00:01    
base/group_gz                          | 211 kB     00:00    
extras                                 | 3.5 kB     00:00    
extras/filelists_db                    |  13 kB     00:00    
extras/prestodelta                     | 1.3 kB     00:00    
extras/primary_db                      |  23 kB     00:00    
extras/other_db                        | 7.9 kB     00:00    
updates                                | 3.5 kB     00:00    
updates/filelists_db                   | 3.6 MB     00:02    
updates/prestodelta                    | 642 kB     00:00    
updates/primary_db                     | 4.6 MB     00:03    
updates/other_db                       | 473 kB     00:00


  
 
 
 
 
 

yum时出现以下错误:
Could not retrieve mirrorlist http://apt.sw.be/redhat/el6/en/mirrors-rpmforge error was
14: PYCURL ERROR 6 – “Couldn’t resolve host ‘apt.sw.be'”
* base: mirror.sjc02.svwh.net
* extras: mirror.sjc02.svwh.net
* updates: repos.lax.quadranet.com
http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 – “Couldn’t resolve host ‘apt.sw.be'”
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge. Please verify its path and try again

解决方法:
打开
/etc/yum.repos.d
改名 rpmforge.repo为 rpmforge.repo.bak
故障解决

 
原文地址:https://www.cnblogs.com/mjbrian/p/9013013.html