web-dev-qa-db-ja.com

Ubuntu 16.04:get-update中のappstreamcliエラー

WiFiを有効にしようとしています。 Sudo apt-get updateを試しました。しかし、私はこのエラーを受け取っています:

The AppStream system cache was updated, but some errors were detected, which might lead to missing metadata. Refer to the verbose log for more information.
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi'
E: Sub-process returned an error code

Ubuntu-16.04でSudo apt-get updateを完了してWifiを有効にするにはどうすればよいですか?

11
Nidhi Mehta

私は同じ問題を抱えていましたが、問題は、(私の場合)ファイル/var/cache/app-info/xmls/fwupd.xmlに265行目の不適切にエスケープされた文字があり、それがxmlを壊したためにエラーが発生したことでした。行<checksum filename="Firmware_SF30&SN30_Pro_V1.26.dat" target="content" type="sha1">3ef2bdee8aca2a45b9f53b4d4cce9722523f57f8</checksum>&シンボルをエンコードする必要があります&amp;これを有効なxmlにするには。

11
Nikola

同様のバグが報告されました here

この答え それを解決するために以下を提案しました(彼らを助けたと言った人もいます):

後で固定パッケージをインストールする場合は、/usr/bin/appstreamcliを削除しても問題ありません。

これを手動でインストールするには、次を実行してください(AMD64の場合、他のアーキテクチャのURLを調整します):

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
Sudo dpkg -i *.deb
4
Yaron

これはxenialにバックポートされませんが、bionicのバージョンにlibappstream-glib8にアップグレードを設定し、bionicからこのパッケージのアップグレードを受信するよう設定できます(ただし、残りは受信できません)。

手順

ABORTとマークされたケースのいずれかに気付いた場合は、これまでに実行したすべてのステップを元に戻し、最後にSudo apt updateを実行します(しかし、それが起こるとは思いませんが、それらは単に保護手段として存在します) 。

  1. (たとえば)future.listというファイルをdir /etc/apt/sources.list.d(Sudoが必要です)に保存し、次の内容を保存します。

    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main
    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main
    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main
    
  2. (たとえば)future.prefというファイルをdir /etc/apt/preferences.d(再びSudoが必要になります)に次の内容で保存します。

    Package: *
    Pin: release a=bionic*
    Pin-Priority: 50
    
  3. Sudo apt update

  4. apt list -uを返し、それがonly "Listing ... Done"を返すことを確認します。より多くのものを返す場合は、ABORT(上記を参照)。
  5. Sudo apt install -assume-no -t=bionic libappstream-glib8。この段階で、aptが古いバージョンを新しいバージョンABORT(上記を参照)に置き換えるだけでなく、依存関係を満たすためにさらに多くのことが必要であると主張する場合。
  6. Sudo mv /var/cache/app-info/xmls/fwupd.xml ~/fwupd.xml.bck
  7. 再起動(これはおそらく新しい共有ライブラリバージョンをロードするために必要であることがわかりました。おそらくサービスを再起動するためです)
  8. Sudo fwupdmgr refresh
  9. Sudo appstreamcli refresh
0
ricab