Ubuntu 16.04でソフトウェアの更新が失敗し続ける | ニンジンジュースのブログ

ニンジンジュースのブログ

いいものご紹介。

2018/01/06 公開

 

 私がメインに使用しているOSはUbuntu 16.04です。

 

最近文字入力中に応答しなくなり、しばらくフリーズしてから治ることがありました。またファイルマネージャも応答しなくなることがありました。

 

なので、ソフトの更新を手動で行おうと思ったところ、失敗するようになっていました。リポジトリのダウンロードサーバを変更しても変わりませんでした。

 

$ sudo apt update

$ sudo apt-get update

を行うと次が表示されます。

*** Error in `appstreamcli': double free or corruption (fasttop): 0x000000000322c640 ***
*** Error in `appstreamcli': double free or corruption (fasttop): 0x00000000012d4640 ***

Webで検索してみると、appstreamcliにバグがあるとのことです。

https://askubuntu.com/questions/943463/library-corruption-error-during-apt-get-update

 

libappstream3を削除したり再インストールすると、解決するらしいです。
これで解決しない人は
rm /etc/apt/apt.conf.d/50appstream
も行うとよいらしい。

ようするにappstreamを削除するとよいらしい。

ではappstreamcliやlibappstream3やappstreamとは何か。

https://askubuntu.com/questions/775069/what-is-appstream-why-is-it-installed-what-is-it-doing

 

man appstreamcli

を実行すると、

Freedesktop.orgのAppSteam projectのpageを参照せよとある。

 

Webでappstremを検索すると、AmazonのWeb Serviceが見つかりました。曰く

Amazon AppStream ウェブサービスはアマゾン ウェブ サービス(AWS)インフラストラクチャにアプリケーションをデプロイし、...

 

2つが連携しているのかどうか知りませんが、man で表示されたFreedesktop.orgがUbuntuにはインストールされていると思います。

 

これは全ての利用可能な全てのソフトウェアのリストを作成するサービスとのこと。

synapticパッケージマネージャyでappstreamを検索しても、関連ソフトも含めてたくさん見つかります。

$ apt rdepends appstream

を実行すると、appstreamと依存関係がある他のパッケージが表示されます。

appstream
Reverse Depends:
  破壊: libapt-pkg5.0 (<< 0.9.0-3~)
  推奨: check-all-the-things
  破壊: libapt-pkg5.0 (<< 0.9.0-3~)
  依存: plasma-discover
  依存: isenkram-cli
  推奨: check-all-the-things
  依存: appstream-index (>= 0.9.4-1)
  推奨: libappstreamqt1 (>= 0.9.4-1)
  提案: appstream-doc
  依存: gnome-software
 

ですが、Synapticの方がわかりやすい。

 

ん?

libapt-pkg5.0
が破壊?まあ壊れても後でなんとかなるでしょう。

 

Debianパッケージの依存関係の破壊(Breaks)の意味は、こちら。

https://www.debian.org/doc/manuals/debian-reference/ch02.ja.html

と説明を読んでもよく分かりませんが、バージョン制約のある依存関係であること、パッケージをアップグレードすると解決できると書かれているようです。

 

$  apt rdepends libappstream3
libappstream3
Reverse Depends:
  依存: appstream (>= 0.9.3)
  依存: limba-devtools
  依存: liblimba0
  依存: libappstream-dev (= 0.9.4-1)
  依存: gir1.2-appstream (= 0.9.4-1)

まずsynapticでlibappstream3を削除しました。

synapticを終了して、ソフトウエアの更新を行うと、問題なく終了しました。

 

再びsynapticを起動して今度は、appstreamをインストールします。libappstream3に依存しているので、libappstream3にもチェックがつきます。

これらをインストールし、synapticを終了し、ソフトウェアの更新を行うと、失敗しました。

$ sudo apt update

はやはり、appstreamcliで失敗しました。

 

これは削除したままにしないとだめだと分かりました。

 

そこで今度はsynapticで、appstreamを削除しました。

ソフトウェアの更新は成功しました。

$ sudo apt update

も問題ありませんでした。