yumの破損?バグ?インストールができなくなった原因

公開日:
更新日:
カテゴリー: サーバー

yumを使ってあれこれインストールしてはアンインストールしたりとCentOS7を入れていたVPSで遊んでいたのですが、突如yumによるインストールができなくなりyumの破損と思われる現象がおきました。

yumの修復を行う必要があるのかな?と思いましたが原因はネットワークエラーでした。

yumのインストールエラー

とあるソフトをyumを使ってインストールしたのですが、

〇〇〇〇〇 FAILED
http://centos.linux.edu.lv/7.6.1810/updates/x86_64/Packages/s〇〇〇〇〇.rpm: [Errno 14] curl#6 - "Could not resolve host: centos.linux.edu.lv; Unknown error"
Trying other mirror.〇〇〇〇〇 FAILED
http://ftp.agh.edu.pl/centos/7.6.1810/updates/x86_64/Packages/〇〇〇〇〇.rpm: [Errno 14] curl#6 - "Could not resolve host: ftp.agh.edu.pl; Unknown error"
Trying other mirror.

Error downloading packages:
〇〇〇〇〇: [Errno 256] No more mirrors to try.

のようなエラーが出てパッケージのダウンロードができませんでした。

yumの破損?バグ?

最初はyumの調子が悪いのかな?と思い

# yum repolis

# yum updat

のコマンドを打ったのですが、それぞれ

No such command: repolistyum. Please use /bin/yum --help

No such command: updateyum. Please use /bin/yum --help

とレスポンスが返ってきて、yumのバグや破損を疑いました。

そのため、

# rm -rf /var/cache/yum/*
# yum clean all

でyumのキャッシュをクリアしたのですが、これが下手を打ったのか先ほどと同じように

# yum repolis

としたところ、

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
http://centos.mirror.serveriai.lt/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: centos.mirror.serveriai.lt; Unknown error"
Trying other mirror.

One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:

1. Contact the upstream for the repository and get them to fix the problem.

2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).

3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...

4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:

yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>

5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:

yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true

Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again

など先ほどはでなかったエラーが吐き出されてドツボにはまりました。

原因はネットワークエラー

しかしいろいろと調べていくうちに「とりあえずヤフーにpingを送信してみろ」みたいなアドバイスがあり、

# ping www.yahoo.co.jp

としたところ

ping: www.yahoo.co.jp: Name or service not known

と出力されそもそもネットワークが通じていないことがわかりました。

# systemctl status network

で詳しく調べたところ、

* network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: failed (Result: exit-code) since Sat 2019-01-05 20:55:14 UTC; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 274 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)

Jan 05 20:02:33 〇〇〇〇〇 systemd[1]: network.service failed.
Jan 05 20:55:14 〇〇〇〇〇 systemd[1]: Starting LSB: Bring up/down networking...
Jan 05 20:55:14 〇〇〇〇〇 network[274]: Bringing up loopback interface: RTNETLINK answers: File exists
Jan 05 20:55:14 〇〇〇〇〇 network[274]: [ OK ]
Jan 05 20:55:14 〇〇〇〇〇 network[274]: Bringing up interface venet0: Error: Connection activation failed: No suitable device found for this connection.
Jan 05 20:55:14 〇〇〇〇〇 network[274]: [FAILED]
Jan 05 20:55:14 〇〇〇〇〇 systemd[1]: network.service: control process exited, code=exited status=1
Jan 05 20:55:14 〇〇〇〇〇 systemd[1]: Failed to start LSB: Bring up/down networking.
Jan 05 20:55:14 〇〇〇〇〇 systemd[1]: Unit network.service entered failed state.
Jan 05 20:55:14 〇〇〇〇〇 systemd[1]: network.service failed.

と出力され、また再起動を行って起動ログを見ると次のようなエラーがありました。

Failed to start LSB: Bring up/down networking

解決策

この問題は、次のコマンドを叩くことで解決されました。

# service NetworkManager stop
# chkconfig NetworkManager off
# /etc/init.d/network restart

なぜyumの操作中にネットワークがバグったのかわかりませんが、改善されたので非常に助かりました。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント