File “/bin/yum”, line 30 except KeyboardInterrupt, e: と表示されyumが使えない

yum コマンドを使おうとするとエラーが出て失敗する事象が発生しました。環境はAmazon Linux2 です。

root # yum --update
File "/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
root #

どうやら原因は pythonのデフォルトバージョンをpython3に変更したことが原因のようです。
※参考:AmazonLinux 2 に python 3をインストール

  1. yumのスクリプトはpython2で書かれている
  2. デフォルトのpythonのバージョンをpython2 からpython3に変更した
  3. yumのスクリプトをpython3で動かそうとして失敗した

ということで解決方法は以下の3つのいずれかになりますが、3は非現実的なので2にしました。

3の選択肢は非現実的なので、2で修正しました。

修正手順

1. /usr/bin/yumの修正

一行目にどの言語でプログラムを動かすかの指定がありますが、ここをpython2に変更します。「python」だけだと、デフォルトのpython3が使われるからです。

変更前

#!/usr/bin/python

変更後

#!/usr/bin/python2

2. /usr/libexec/urlgrabber-ext-downの修正

これも同様です。

変更前

#!/usr/bin/python

変更後

#!/usr/bin/python2

コメント

タイトルとURLをコピーしました