linuxBean14.04(129)pythonコマンドにはpython2.7を割り当てておく

ラベル: ,
久しぶりに豆ボタン→設定→ソフトウェアの更新、をしたらアップデータが600MBもありました。アップデートしようとするとエラーがでアップデータが終わりませんでした。原因はpythonコマンドの割り当てにpython3を当てていたことでした。

前の関連記事:linuxBean14.04(128)Closure StylesheetsでCSSを圧縮する


update-alternativesの優先度はupdate-alternatives --autoで反映される


pyhotnコマンドはlinuxBean14.04(115)pythonコマンドをpipコマンドとともに切り替えるでupdate-alternativesで切り替えるように設定しました。

sudo update-alternatives --config python

このコマンドで選択肢がでてきます。
pq@pq-VirtualBox:~$ sudo update-alternatives --config python
[sudo] password for pq: 
alternative python (/usr/bin/python を提供) には 2 個の選択肢があります。

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

現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 
/usr/bin/python2.7と/usr/bin/python3.4を切り替えるように設定しており、/usr/bin/python2.7の方が優先度を上げているので自動で選択されるはずですが、どのタイミングで自動で設定されるのか理解していませんでした。

メモ: alternativesコマンドの動き - 虎塚を読んでわかりました。

sudo update-alternatives --auto python

このコマンドを実行したときに優先度が高いものが選択されるのでした。
pq@pq-VirtualBox:~$ sudo update-alternatives --auto python
update-alternatives: /usr/bin/python (python) を提供するために 自動モード で /usr/bin/python2.7 を使います
これを理解していなかったのでなんとなく勝手にpythonには優先度が高いpython2.7が選択されていると考えていました。

実際はupdate-alternatives --autoを実行していなかったのでpython3.4が選択されたままになっていました。

pythonコマンドにpython3を割り当てたままソフトウェアの更新をするとエラーになる


pythonコマンドにpython3を割り当てたまま、豆ボタン→設定→ソフトウェアの更新、としてみました。

パッケージファイルのダウンロードは問題なく終わります。


E: /var/cache/apt/archives/python-samba_2%3a4.3.11+dfsg-0ubuntu0.14.04.3_i386.deb: サブプロセス 新しい pre-removal スクリプト はエラー終了ステータス 1 を返しました
E: gconf2: サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました

インストールしてしばらくするとこのようなエラーがでてインストールが終わります。

「閉じる」をクリックしてウィンドウを閉じると再度ソフトウェアの更新が立ち上がってインストールをうながされますが結果は同じです。

linuxBeanを再起動しても解決しません。


Synapticパッケージマネージャで破損パッケージを確認するとpython-sambaのアップデートに失敗していました。


ソフトウェアの更新前の状態でSynapticパッケージマネージャでpython-sambaを削除してみるとやはりエラーが出て削除できませんでした。

エラー内容をみるとConfigParserモジュールがないと出ていました。

Python3ではConfigParserがconfigparserに変更になっているのが原因です。

その部分だけ修正しましたが今度は別のところでひっかかってやはりダメでした。

ここでようやく上記のpythonコマンドの割り当てが原因であることに思い当りました。

pythonコマンドの割り当てをpython3.4からpython2.7に変更すると問題なく更新できました。

参考にしたサイト


メモ: alternativesコマンドの動き - 虎塚
update-alternativesの優先度はupdate-alternatives --autoを実行したときに反映されます。

次の関連記事:linuxBean14.04(130)weinreでiOSのブラウザのJavaScriptをデバッグする

PR

0 件のコメント:

コメントを投稿