CentOS

yumのSyntaxError「KeyboardInterrupt」「except yum.Errors.RepoError」が出た時の対処法

2018年7月22日

こんにちは!土門大貴(daikidomon)です。

「yum」インストールした時に以下の「SyntaxError」が出力し、

「yum」がうまくインストールすることが出来ない時があります。

File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax

File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
^
SyntaxError: invalid syntax

File "/usr/bin/yum-config-manager", line 133
except yum.Errors.RepoError, e:
^
SyntaxError: invalid syntax

今回はこの「SyntaxError」の対処方法を紹介します。

SyntaxErrorの原因

SyntaxError」の原因は「yum」を実行するPythonが「Python 3.X」だから原因で発生します。

「yum」の起動スクリプトである「/usr/bin/python」を確認します。
ls -l /usr/bin/python
下のように確認しましょう。

[root@localhost ~]# ls -l /usr/bin/python
lrwxrwxrwx. 1 root root 24 Jul 16 20:40 /usr/bin/python -> /etc/alternatives/python
[root@localhost ~]# ls -l /etc/alternatives/python
lrwxrwxrwx. 1 root root 29 Jul 16 20:40 /etc/alternatives/python -> /usr/local/python/bin/python3

解決方法

「yum」を実行するPythonを「Python 2.X]」系に変更することで解決できます。

/usr/bin/yum」を「Python2.X」系に変更します。
#!/usr/bin/python2.7 
import sys
try:
import yum
except ImportError:
print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
/usr/libexec/urlgrabber-ext-down」を「Python2.X」系に変更します。
#! /usr/bin/python2.7
# A very simple external downloader
# Copyright 2011-2012 Zdenek Pavlas

# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
/usr/bin/yum-config-manager」を「Python2.X」系に変更します。
#!/usr/bin/python2.7 -tt

import os, os.path
import sys
import re
import yum
sys.path.insert(0,'/usr/share/yum-cli')

参考にしたサイト

MariaDBインストール時にyumが失敗する際に確認すること

 

関連記事

-CentOS

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.