Yumパッケージを更新/インストールすると、次のエラーが発生します。この問題を克服するにはどのような措置を講じるべきですか?
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 267, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 120, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 432, in doCommands
return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
File "/usr/share/yum-cli/yumcommands.py", line 226, in doCommand
return base.updatePkgs(extcmds)
File "/usr/share/yum-cli/cli.py", line 736, in updatePkgs
if not self.update(pattern=arg):
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 3687, in update
obs_tups = self.up.obsoleted_dict.get(installed_pkg.pkgtup, [])
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 878, in <lambda>
up = property(fget=lambda self: self._getUpdates(),
File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 702, in _getUpdates
self._up = rpmUtils.updates.Updates(self.rpmdb.simplePkgList(), self.pkgSack.simplePkgList())
File "/usr/lib/python2.7/site-packages/yum/rpmsack.py", line 489, in simplePkgList
return self.pkglist
File "/usr/lib/python2.7/site-packages/yum/rpmsack.py", line 232, in _get_pkglist
csumpkgtups = self.preloadPackageChecksums(load_packages=False)
File "/usr/lib/python2.7/site-packages/yum/rpmsack.py", line 966, in preloadPackageChecksums
rpmdbv = self.simpleVersion(main_only=True)[0]
File "/usr/lib/python2.7/site-packages/yum/rpmsack.py", line 1149, in simpleVersion
self._put_cached_simpleVersion_main(main)
File "/usr/lib/python2.7/site-packages/yum/rpmsack.py", line 1098, in _put_cached_simpleVersion_main
os.rename(rpmdbvfname + ".tmp", rpmdbvfname)
OSError: [Errno 5] Input/output error
答え1
あなたの状況IMHOは、以下に説明する状況に似ています。 CentOSの問題。
したがって、解決策はおそらく同じでしょう。再インストールpython
して再インストールし、yum
実行してyum clean all && yum makecache
実行しますyum update
。
答え2
重要な部分は最後の行のようです。
OSError: [Errno 5] Input/output error
これは、プライマリストレージメディア(ハードドライブなど)からデータを読み書きするときに物理エラーが発生したことを示します。
実行すると、dmesg
最後に追加の診断情報を見つけることができます。
この特定のエラーに遭遇するたびに、私はすぐにそのメディアに疑問を抱きます。ハードドライブの可能性が高いので、SMARTの状態を確認することをお勧めします。たとえば、次のようになります。
smartctl -a /dev/sda
そして不良セクタを確認してください。
badblocks /dev/sda
また、ドライブケーブルの接続が確実で、電源装置が適切であることを確認してください。