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