ubuntuサーバーでapt-get upgradeが失敗していた

レンタルサーバーで使用しているubuntuでapt-get upgradeがエラーになるので対応した。原因はpythonのバージョンだった。

こんなエラー↓

SyntaxError: invalid syntax
dpkg: 警告: サブプロセス 古い pre-removal スクリプト はエラー終了ステータス 1 を返しました
dpkg: 代わりに新規パッケージからスクリプトを実行してみます ...
  File "/usr/bin/pyclean", line 63
    except (IOError, OSError), e:
                             ^
SyntaxError: invalid syntax
dpkg: アーカイブ /var/cache/apt/archives/debconf_1.5.56+deb8u1_all.deb の処理中にエラーが発生しました (--unpack):
 サブプロセス 新しい pre-removal スクリプト はエラー終了ステータス 1 を返しました

調べるとなぜかシステムのpythonのバージョンがpython3になっていた

# python --version
Python 3.4.2
# which python
/usr/bin/python
# ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24  1月  6  2016 /usr/bin/python -> /etc/alternatives/python
# ls -l /etc/alternatives/python
lrwxrwxrwx 1 root root 16  4月  4  2016 /etc/alternatives/python -> /usr/bin/python3

きっと過去にpython環境を作ろうとしてやってしまったのだろう。

update-alternativesコマンドを使って修正

# update-alternatives --config python
alternative python (/usr/bin/python を提供) には 2 個の選択肢があります。

  選択肢    パス            優先度  状態
------------------------------------------------------------
  0            /usr/bin/python3   2         自動モード
  1            /usr/bin/python2   1         手動モード
* 2            /usr/bin/python3   2         手動モード

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 1
update-alternatives: /usr/bin/python (python) を提供するためにマニュアルモードで /usr/bin/python2 を使います
# python --version
Python 2.7.9