LoginSignup
17
14

More than 5 years have passed since last update.

yumコマンド実行時に Cannot retrieve repository metadata と出て失敗する(CentOS 6.4)

Last updated at Posted at 2018-10-07

■症状

CentOS 6.X系にて、特にyum系の設定に触っていないのに、yumコマンドをたたくと以下エラーが発生する。

# yum update
Loaded plugins: fastestmirror, security
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
#

■診察結果

CentOS 6.X系のyumレポジトリの場所が変わってしまっているので、変えてあげましょう。

今回は変更先として以下とします。
http://vault.centos.org/6.4/

■回復方法

①レポジトリ設定ファイルの編集
場所:/etc/yum.repos.d/CentOS-Base.repo

この設定ファイルの中に、レポジトリの場所がたくさん書いてあります。
レポジトリの場所を中身を書き換えます。
 →方針1.とりあえずファイルはバックアップする
 →方針2.mirrorlistはコメントアウト
 →方針3.basenameはコメントアウトを外して、URLを書き換え

/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

  ≪後略≫

・コマンド

cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
sudo sed -i -e "s|mirror\.centos\.org/centos/\$releasever|vault\.centos\.org/6.4|g" /etc/yum.repos.d/CentOS-Base.repo`
sudo sed -i -e "s|#baseurl=|baseurl=|g" /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo

覚え書き:
1行目はファイルのバックアップ
2行目はURLの書き換え
3行目はbaseurlのコメントアウト外し
4行目はmirrorlistのコメントアウト

sed [option] [file]
-i :ファイルの直接編集
-e :スクリプトの追加
s/置換前/置換後/g :置換前でマッチした部分を置換後に置き換え、/gで対象範囲内全箇所を置換
\. \\$ :ピリオドとドルは\によるエスケープが必要
http://www.atmarkit.co.jp/ait/articles/1610/17/news015.html
https://qiita.com/katsukii/items/1c1550f064b4686c04d4

・編集結果

/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://vault.centos.org/6.4/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-

  ≪後略≫

②yum実行
うまくいけばyumコマンドが実行できるようになるはずです。

# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
base                                                                                              | 3.7 kB     00:00     
base/primary_db                                0% [                                    ]  0.0 B/s |  30 kB     --:-- ETA 
base/primary_db                                1% [                                    ]  37 kB/s |  59 kB     02:00 ETA 
base/primary_db                                2% [=                                   ]  48 kB/s | 131 kB     01:31 ETA 

  ≪後略≫

■上記で解決しない場合

私の場合は以下エラーが発生し、結果としてDNS設定をやってませんでした。

コマンド:yum update

エラー内容
# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
http://vault.centos.org/6.4/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'vault.centos.org'"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
#

・状況確認① ネット接続(pingでgoogleのIPアドレス) →OK

# ping 216.58.197.195
PING 216.58.197.195 (216.58.197.195) 56(84) bytes of data.
64 bytes from 216.58.197.195: icmp_seq=1 ttl=128 time=8.68 ms
64 bytes from 216.58.197.195: icmp_seq=2 ttl=128 time=9.21 ms
^C
--- 216.58.197.195 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1744ms
rtt min/avg/max/mdev = 8.685/8.949/9.214/0.280 ms

・状況確認② ネット接続(pingでレポジトリのIPアドレス) →OK

# ping 162.251.108.7
PING 162.251.108.7 (162.251.108.7) 56(84) bytes of data.
64 bytes from 162.251.108.7: icmp_seq=1 ttl=128 time=142 ms
64 bytes from 162.251.108.7: icmp_seq=2 ttl=128 time=144 ms
64 bytes from 162.251.108.7: icmp_seq=3 ttl=128 time=146 ms
64 bytes from 162.251.108.7: icmp_seq=4 ttl=128 time=142 ms
64 bytes from 162.251.108.7: icmp_seq=5 ttl=128 time=153 ms
^C
--- 162.251.108.7 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4845ms
rtt min/avg/max/mdev = 142.394/145.783/153.022/3.979 ms
[root@cent64-gn01 ~]#

・状況確認③ ネット接続(pingでレポジトリのDNS) →NG

# ping vault.centos.org
ping: unknown host vault.centos.org

・インターフェース設定にDNS設定を追加(viで直接編集)
 コマンド:vi /etc/sysconfig/network-scripts/ifcfg-eth0

補足:今回はGoogle DNS(プライマリ8.8.8.8, セカンダリ8.8.4.4)を選定

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
UUID=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
GATEWAY=xxx.xxx.xxx.xxx
DNS1=8.8.8.8
DNS2=8.8.4.4

・ネットワーク設定のリブート
 コマンド:/etc/rc.d/init.d/network restart

# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中:  [  OK  ]
インターフェース eth1 を終了中:  [  OK  ]
ループバックインターフェースを終了中  [  OK  ]
ループバックインターフェイスを呼び込み中 [  OK  ]
インターフェース eth0 を活性化中:  [  OK  ]
インターフェース eth0_20181008 を活性化中:  RTNETLINK answers: File exists
[  OK  ]
インターフェース eth1 を活性化中:  [  OK  ]
# 

・状況確認③ ネット接続(pingでレポジトリのDNS) →OK

# ping vault.centos.org
PING vault.centos.org (208.100.23.71) 56(84) bytes of data.
64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=1 ttl=128 time=159 ms
64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=2 ttl=128 time=157 ms
^64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=3 ttl=128 time=159 ms
64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=4 ttl=128 time=162 ms
^V64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=5 ttl=128 time=162 ms
^C
--- vault.centos.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4907ms
rtt min/avg/max/mdev = 157.744/160.263/162.505/1.812 ms
# 

・yum実行 →OK
コマンド:yum update

# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
base                                                                                              | 3.7 kB     00:00     
base/primary_db                                0% [                                    ]  0.0 B/s |  30 kB     --:-- ETA 
base/primary_db                                1% [                                    ]  37 kB/s |  59 kB     02:00 ETA 
base/primary_db                                2% [=                                   ]  48 kB/s | 131 kB     01:31 ETA 

  ≪後略≫

■出典/参考

[tips][Linux]旧バージョンCentOSでyum更新できなくなった時
http://luozengbin.github.io/blog/2015-08-29-%5Btips%5D%5Blinux%5D%E6%97%A7%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3centos%E3%81%A7yum%E6%9B%B4%E6%96%B0%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E6%99%82.html

【CentOS】【Linux】yum コマンド エラー集とその対策まとめ
https://go-journey.club/archives/3766

CentOS6.6(64bit)をインストール後にyum更新に失敗する
https://teratail.com/questions/31756

お試しあれ!無料のDNSサーバおすすめ4選!
http://suqare.info/archives/239

IPアドレスを保存しない高速パブリックDNSサービス「1.1.1.1」、APNICとCloudflareが無料提供
https://internet.watch.impress.co.jp/docs/news/1114805.html

CentOS 参照するDNSサーバの設定
http://ezxnet.com/linux/entry3560/

CentOS6のネットワークの設定ファイル
http://girochinful.hatenablog.com/entry/2015/12/28/000159

17
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
14