web-dev-qa-db-ja.com

HPLIP SysTrayアイコンが壊れ、ログインするたびにクラッシュする-なぜですか?

私は、Ubuntu MATE 16.04.5 LTSを現在のすべての更新と公式のUbuntuリポジトリからのHPLIPで使用しています。

$ dpkg -l | grep hplip
ii  hplip       3.16.3+repack0-1   AMD64  HP Linux Printing and Imaging System (HPLIP)
ii  hplip-data  3.16.3+repack0-1   all    HP Linux Printing and Imaging - data files
ii  hplip-gui   3.16.3+repack0-1   all    HP Linux Printing and Imaging - GUI utilities (Qt-based)

$ apt-cache policy hplip-gui 
hplip-gui:
  Installed: 3.16.3+repack0-1
  Candidate: 3.16.3+repack0-1
  Version table:
 *** 3.16.3+repack0-1 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe AMD64 Packages
        500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
        100 /var/lib/dpkg/status

XDGファイルを見つけようとすると、次のようになります。

$ dpkg -L hplip-gui | grep "xdg.*desktop"
/etc/xdg/autostart/hplip-systray.desktop

次のコマンドで始まります:

$ cat /etc/xdg/autostart/hplip-systray.desktop | grep Exec
Exec=hp-systray -x

手動で起動すると、次のようになります:

$ hp-systray -x

HP Linux Imaging and Printing System (ver. 3.16.3)
System Tray Status Service ver. 2.0

Copyright (c) 2001-15 HP Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.

Segmentation fault (core dumped)

システムの整合性は問題ありません-debsums --all --changedからエラー出力はありません。

質問-HPLIP Systrayがクラッシュする理由と、それを再び機能させるにはどうすればよいですか?

1
N0rbert

まず、hp-systrayのファイルタイプを判断する必要があります。

$ which hp-systray 
/usr/bin/hp-systray
$ file $(which hp-systray)
/usr/bin/hp-systray: symbolic link to ../share/hplip/systray.py
$ file $(readlink -f $(which hp-systray))
/usr/share/hplip/systray.py: Python script, ASCII text executable

-それはPythonスクリプトです。

次に、/var/crash/_usr_share_hplip_systray.py.1000.crashでクラッシュダンプを読み取ることにより、次のことを判断できます。クラッシュダンプには、pip3によってインストールされたpythonモジュールへの参照が含まれています。

...
ProcMaps:
...
 ... /usr/local/lib/python3.5/dist-packages/sip.so
 ... /usr/local/lib/python3.5/dist-packages/sip.so
 ... /usr/local/lib/python3.5/dist-packages/sip.so
 ... /usr/local/lib/python3.5/dist-packages/sip.so

したがって、問題のあるsipモジュールを削除する必要があります

Sudo pip3 uninstall sip

python3-sipパッケージのsipを使用するため、HPLIPの問題を解決しました。


ただし、sipを削除すると、pip3からインストールされたReTextも破損します。
それを修正するには、以下を行う必要があります。

  • reTextの依存関係を調整して動作させる:

    Sudo -H pip3 install sip==4.18 PyQt5-sip==4.19.11 PyQt5==5.7 retext
    

    しかし、この方法では、あまり新しくないハードウェアでテキストの編集とカーソルの動きが遅くなります。

  • 私の その他の回答 で説明されているhplipのdeb/APTバージョンを削除してから、ReTextをインストールします。

    Sudo -H pip3 install PyQt5==5.9.2 retext 
    

    注:PyQt 5.9.2は、Chromium(WebKit)レンダラーを正常に動作させ、Spyder3と共存させるために必要です。

1
N0rbert