RHEL 5.7 Yum配置本地源[Errno 2] No such file or directory


在Red Hat Enterprise Linux Server release 5.7 上配置YUM本地源时,遇到了"Errno 5] OSError: [Errno 2] No such file or directory xxxx",花了点时间搞清楚错误的来龙去脉。特此记录一下:

将RedHat 5.7的光盘镜像拷贝到了/mnt/cdrom/LinuxSrc目录下,配置了rhel-media.repo文件,如下所示

[root@DB-Server yum.repos.d]# more rhel-media.repo
[media]
name=Red Hat Enterprise Linux 5.7                               
baseurl=file:///mnt/cdrom/LinuxSrc                                       
enabled=1                                                       
gpgcheck=0                                                       
gpgkey=file:///mnt/cdrom/LinuxSrc/RPM-GPG-KEY-redhat-release

执行yum clean all命令后,执行yum makecache遇到了下面错误:

[root@DB-Server yum.repos.d]# yum clean all
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
Cleaning up Everything
[root@DB-Server yum.repos.d]# yum makecache
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
file:///mnt/cdrom/LinuxSrc/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/mnt/cdrom/LinuxSrc/repodata/repomd.xml'
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: media. Please verify its path and try again
[root@DB-Server yum.repos.d]#

出现这个错误的根本原因在于RHEL 5.x 版本与RHEL 6.x 版本的rpm包存放路径不同:

RHEL 5.x : ../Server    例如:我案例环境位于/mnt/cdrom/LinuxSrc/Server 下。

RHEL 6.x : ../Packages

所以还在于上面的baseurl参数设置错误。那么我们可以通过两种方法解决这个问题:

方法1:配置正确的baseurl参数。

[root@DB-Server yum.repos.d]# vi rhel-media.repo
[media]
name=Red Hat Enterprise Linux 5.7
baseurl=file:///mnt/cdrom/LinuxSrc/Server
enabled=1
gpgcheck=0
gpgkey=file:///mnt/cdrom/LinuxSrc/RPM-GPG-KEY-redhat-release

方法2:使用createrepo命令创建本地源目录,将其指向baseurl指定的目录


[root@DB-Server Server]# rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm
warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...                ########################################### [100%]
  1:createrepo            ########################################### [100%]
[root@DB-Server Server]# createrepo --update /mnt/cdrom/LinuxSrc
Previous repo file missing: /mnt/cdrom/LinuxSrc/repodata/primary.xml.gz
3388/3388 - VT/etherboot-roms-5.4.4-15.el5.x86_64.rpm                          mm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
You have new mail in /var/spool/mail/root
[root@DB-Server Server]# yum makecache
Loaded plugins: product-id, security, subscription-manager
Updating Red Hat repositories.
media                    |  951 B    00:00   
media/filelists          | 3.1 MB    00:00   
media/other              |  11 MB    00:00   
media/primary            | 1.1 MB    00:00   
media                                3388/3388
media                                3388/3388
media                                3388/3388
Metadata Cache Created
[root@DB-Server Server]#

更多YUM相关教程见以下内容

RedHat 6.2 Linux修改yum源免费使用CentOS源

配置EPEL YUM源

Redhat 本地yum源配置

yum的配置文件说明

RedHat 6.1下安装yum(图文)

YUM 安装及清理

CentOS 6.4上搭建yum本地源

相关内容