[ubuntu-jp:5845] Re: python3 のインストールに伴う不具合で困っています

小波秀雄 dkbbd405 @ kyoto.zaq.ne.jp
2017年 9月 5日 (火) 13:02:57 UTC


稲田さん,さっそくのご返答をありがとうございます。

スクリプトが想定している /usr/bin/python は バージョンが 2 なのに,動かし
ている Python は 3 になっているということでしたので,教えていただいたの
とは方針が違いますが,次のようにして解決しました。

まず,/usr/bin に当たっている python の優先順位を次のようにして 2.7 > 3.5
に変更する。
sudo update-alternatives --install /usr/bin/python python 
/usr/bin/python2.7 2
sudo update-alternatives --install /usr/bin/python python 
/usr/bin/python3.5 1

この状態で,インストール失敗していたターゲットに apt を実行したら成功した。
sudo apt-get -f install python-samba
sudo apt-get -f install python-jwt

Pythonの優先順位を元に戻す。
sudo update-alternatives --install /usr/bin/python python 
/usr/bin/python3.5 2
sudo update-alternatives --install /usr/bin/python python 
/usr/bin/python2.7 1

最後に他の更新も追加。
sudo apt upgrade

こんな感じでうまくいきました。なお,python2 は Ubuntu インストール時に入って
いたので, apt で python3 を追加インストールしたものの,作業の途中で
詳しいことは忘れましたが何かトラブルがあって,中断しておかしくしたものです。
自分で分析する力がまだまだ足りません。助言いただいて助かりました。
重ねてお礼申し上げます。

小波秀雄




On 2017年09月05日 19:04, INADA Naoki wrote:
> 稲田です。
>
> Python 3 はどうやってインストールされましたか?
>
> エラーをみるに、 pre-removal スクリプトで Python 2 依存のスクリプトが、
> Python 3 インタプリタで実行されています。
>
> パッケージの中のスクリプトが #!/usr/bin/python2 と書かれていたら問題にならないのですが、
> #!python とか #!/usr/bin/env python と書かれているケースだと、 "python" というコマンドで
> Python 3 が立ち上がる用になると、こういったトラブルが発生します。
>
> なので、デフォルトで python コマンドが Python 2 の環境に Python 3 をインストールするときは、
> python3 コマンドが Python 3 を起動するようにしつつ、 python コマンドは /bin/python のままに
> なるように配慮する必要があります。
>
> もし、 Python 3 をソースからインストールして、 PATH で /usr/bin より先に追加したのであれば、
> そのインストール場所にある python コマンドを削除して python3 か python3.6 コマンドを
> 使うようにすれば良いと思います。
>
> INADA Naoki  <songofacandy @ gmail.com>
>
>
> 2017-09-05 18:59 GMT+09:00 小波秀雄 <dkbbd405 @ kyoto.zaq.ne.jp>:
>> 京都の小波です。いつもお世話になっております。
>>
>> Ubuntu 16.04LTS に Python3 をインストールしようとして,途中でトラブルが
>> 起きたのですが(そのログはありません),なんとかして一部エラーメッセージは
>> 吐きましたが,インストールはでき,Python そのものはちゃんと走っています。
>>
>> ところが,システムのアップグレードで以下のような問題が発生して困っています。
>>
>> 解決のアドバイスやヒントをいただけると幸いです。
>>
>> ===========================
>> $ sudo apt update  #これは問題なし
>>
>> =====================================
>> $ sudo apt upgrade # 以下のメッセージが出てしまう。
>> パッケージリストを読み込んでいます... 完了
>> 依存関係ツリーを作成しています
>> 状態情報を読み取っています... 完了
>> これらを直すためには 'apt-get -f install' を実行する必要があるかもしれません。
>> 以下のパッケージには満たせない依存関係があります:
>>   python-samba : 依存: samba-libs (= 2:4.3.11+dfsg-0ubuntu0.16.04.9)
>> しかし、2:4.3.11+dfsg-0ubuntu0.16.04.10 はインストールされています
>>
>> =========================================
>> $  sudo apt-get -f install   # 上のメッセージに従ってこれを実行
>> パッケージリストを読み込んでいます... 完了
>> 依存関係ツリーを作成しています
>> 状態情報を読み取っています... 完了
>> 依存関係を解決しています ... 完了
>> 以下のパッケージが自動でインストールされましたが、もう必要とされていません:
>>    linux-headers-4.4.0-91 linux-headers-4.4.0-91-generic
>> linux-image-4.4.0-91-generic linux-image-extra-4.4.0-91-generic
>> これを削除するには 'sudo apt autoremove' を利用してください。
>> 以下の追加パッケージがインストールされます:
>>    python-samba
>> 以下のパッケージはアップグレードされます:
>>    python-samba
>> アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
>> 14 個のパッケージが完全にインストールまたは削除されていません。
>> 1,081 kB 中 0 B のアーカイブを取得する必要があります。
>> この操作後に追加で 0 B のディスク容量が消費されます。
>> 続行しますか? [Y/n]    # Y をタイプ。すると Python で書かれているらしいファイルがエラーを起こすらしい。
>>
>> (データベースを読み込んでいます ... 現在 499437 個のファイルとディレクトリがインストールされています。)
>> .../python-samba_2%3a4.3.11+dfsg-0ubuntu0.16.04.10_amd64.deb を展開する準備をしています
>> ...
>>    File "/usr/bin/pyclean", line 63
>>      except (IOError, OSError), e:
>>                               ^
>> 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/python-samba_2%3a4.3.11+dfsg-0ubuntu0.16.04.10_amd64.deb
>> の処理中にエラーが発生しました (--unpack):
>>   サブプロセス 新しい pre-removal スクリプト はエラー終了ステータス 1 を返しました
>> Traceback (most recent call last):
>>    File "/usr/bin/pycompile", line 35, in <module>
>>      from debpython.version import SUPPORTED, debsorted, vrepr, \
>>    File "/usr/share/python/debpython/version.py", line 24, in <module>
>>      from ConfigParser import SafeConfigParser
>> ImportError: No module named 'ConfigParser'
>> dpkg: クリーンアップ中にエラーが発生しました:
>>   サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
>> 処理中にエラーが発生しました:
>>
>> /var/cache/apt/archives/python-samba_2%3a4.3.11+dfsg-0ubuntu0.16.04.10_amd64.deb
>> E: Sub-process /usr/bin/dpkg returned an error code (1)
>>
>>
>> 小波秀雄
>>




ubuntu-jp メーリングリストの案内