実行環境
ubuntu 16.04 LTS
起こったこと
「システムプログラムが発生しました」というダイアログが出るようになった。
起こるまで
ubunutuをクリーンインストールして、
$ sudo apt update
したら、Promlem executing scriptsエラーが出てupdateできなかったので、ここを参考に、以下を実行して解決した。
cd /tmp && mkdir asfix
cd asfix
wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
# .debパッケージをインストール
sudo dpkg -i *.deb
するとダイアログが出るようになった。ちなみにappstreamは、以下を参照。
https://kledgeb.blogspot.com/2016/05/ubuntu-1604-58-appstream.html
「AppStream」は「Ubuntu/GNOMEソフトウェア」の基盤となるソフトウェア。ubuntu gnomeはグラフィカルシェル(デスクトップの上側にタスクバーがあり、左端にアクティビティ、中央に時計とカレンダー、右端に通知メニューとチャットメニューが表示されるなどの画面のレイアウト的な話かな多分)
参照:https://ja.wikipedia.org/wiki/GNOME_Shell
ちなみにこれでapt updateはできるようになった。
解決方法
話が逸れたが、今回はダイアログを消す方法について。
/var/crash内のファイルを消す必要があるらしい。
https://qiita.com/naoyukisugi/items/d0a30f1e7b9761fdf3e9
コマンドラインで以下を実行。
$ sudo rm /var/crash/*
自分の場合、/var/crash内に
_usr_bin_appstreamcli.0.crash
というファイルがあった。
追記
以下に参考にした記事を載せる。
http://grainrigi.hatenablog.com/entry/2017/08/26/232405
https://www.hiroom2.com/2016/05/20/ubuntu-16-04のapt-updateでappstreamcliが固まる/
下の記事から引用:
2016年5月20日現在、apt updateで処理が進まなくなる問題が発生しています。
この問題は「ソフトウェアの更新」からは発生しないようです。
appstream 0.9.4-1パッケージに問題があるようです。
Ubuntu 16.04でも修正版がリリースされました。
問題はパッケージが修正されてもapt updateで固まってインストールできない点です。
ここでは修正されたappstreamをインストールする手順を記載します。
バグありのappstreamが初期でインストールされるubuntuがあるらしい。それだとapt updateすると引っかかる。
調べたところ、一度updateできれば、そのあとはエラーが起こることはないという。
上の記事より、appstreamcliを無効にしてから、apt updateし、続いてappstreamを有効化してもう一度apt updateすればうまくいくらしい。
# appstreamを無効化
$ sudo killall -KILL apt.systemd.daily
$ sudo mv /etc/apt/apt.conf.d/50appstream /etc/apt/apt.conf.d/50appstream.disable
# apt update/upgradeを実行
$ sudo apt update -y
$ sudo apt upgrade -y
# appstreamを有効化して再度update
$ sudo mv /etc/apt/apt.conf.d/50appstream.disable /etc/apt/apt.conf.d/50appstream
$ sudo apt update -y
今回は、無効化とかはしなかった。wget ~ dpkgのところでバグってないバージョンのappstream入れなおしたから、無効化しなくてもできるようになったんだと思う。一度でもapt update失敗したから、appstream関連のクラッシュファイルが/var/crash内に作られて、ダイアログが出るようになったんだと思う。