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源配置目录
备份系统自带的yum源
下载其他更快的yum源
中科大的yum源:
163的yum源:
sohu的yum源
更新完yum源后,建议更新一下,使操作立即生效
Loaded plugins: fastestmirrorRepository base is listed more than once in the configurationRepository updates is listed more than once in the configurationRepository extras is listed more than once in the configurationRepository centosplus is listed more than once in the configurationRepository contrib is listed more than once in the configurationLoading mirror speeds from cached hostfile* addons: mirrors.163.com* base: mirror.metrocast.net* extras: mirror.beyondhosting.net* fasttrack: centos.vipernetworksystems.com* updates: centos.vipernetworksystems.comhttp://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
#[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
#[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
vim-X11.x86_64 : The VIM version of the vi editor for the X Window Systemvim-common.x86_64 : The common files needed by any version of the VIM editorvim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancementsvim-minimal.x86_64 : A minimal version of the VIM editor今天帮同事搭建环境时碰到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
故障解决