web-dev-qa-db-ja.com

VLCチームがlibgles1の依存関係を削除したにもかかわらず、aptはlibgles1が古すぎるためVLCをアンインストールしたい

/var/log/dist-upgrade/apt.logから:

Starting pkgProblemResolver with broken count: 1
Starting 2 pkgProblemResolver with broken count: 1
Investigating (0) libgles1-mesa [ AMD64 ] < 12.0.6-0ubuntu0.16.04.1 > ( libs )
Broken libgles1-mesa:AMD64 Depends on libglapi-mesa [ AMD64 ] < 12.0.6-0ubuntu0.16.04.1 -> 17.0.7-0ubuntu0.16.04.1 > ( libs ) (= 12.0.6-0ubuntu0.16   .04.1)
    Considering libglapi-mesa:AMD64 64 as a solution to libgles1-mesa:AMD64 2
    Removing libgles1-mesa:AMD64 rather than change libglapi-mesa:AMD64
Investigating (0) vlc [ AMD64 ] < 2.2.2+git20170721+r59033+56~ubuntu16.04.1 > ( video )
Broken vlc:AMD64 Depends on libgles1-mesa [ AMD64 ] < 12.0.6-0ubuntu0.16.04.1 > ( libs ) (>= 7.8.1)
    Considering libgles1-mesa:AMD64 2 as a solution to vlc:AMD64 1
Broken vlc:AMD64 Depends on libgles1 [ AMD64 ] < none ->  > ( none )
    Considering libgles1-mesa:AMD64 2 as a solution to vlc:AMD64 1
    Or group remove for vlc:AMD64
Done

Webを検索すると、 libgles1は廃止されました であることがわかりました。

VLCチームは依存関係を2.2.2-5ubuntu0.16.04.2から更新しましたが、システムは明らかにそれに追いついていません(apt-cache depends vlcを実行して確認し、libgles1-mesaへの依存関係を示しています)。

数か月前に launchpad videolan PPA (最新のバグの少ないVLCを取得するため)を追加しました。

これにより、VLCバージョン2.2.7が提供され、VLCのバグが修正されました。これが今日のシステムにあるものです。 vlc --versionがそう教えてくれるからです。

apt-cache policy vlc言う:

Installed: 2.2.2+git20170721+r59033+56~ubuntu16.04.1
Candidate: 2.2.2+git20170721+r59033+56~ubuntu16.04.1
Version table:
*** 2.2.2+git20170721+r59033+56~ubuntu16.04.1 500
    500 http://ppa.launchpad.net/videolan/stable-daily/ubuntu xenial/main AMD64 Packages
    100 /var/lib/dpkg/status
 2.2.2-5ubuntu0.16.04.3 500
    500 http://gb.archive.ubuntu.com/ubuntu xenial-updates/universe AMD64 Packages
    500 http://security.ubuntu.com/ubuntu xenial-security/universe AMD64 Packages
 2.2.2-5 500
    500 http://gb.archive.ubuntu.com/ubuntu xenial/universe AMD64 Packages

apt-cache policyが2.2.2 + git20170721 + r59033 + 56〜ubuntu16.04.1がインストールされていると言っているのは奇妙に思えます。vlcバージョン2.2.2として読んだことは、vlc --versionが提供する2.2.7と競合します。)

どうやら、Ubuntuバージョン16.04.2 LTS 64ビットがインストールされているようです(GUIコントロールパネルの[システムの詳細]から)。

ランチパッドのPPAを無効にできると思いますが、その場合、おそらくシステムをクラッシュさせていた古いvlcバイナリに戻るでしょう。

だから私の質問は(少なくともこれは正しい質問だと思う):
libgles1-mesaが古い、または欠落していても大丈夫だと納得させるにはどうすればよいですか?

1
WellINever

解決策は、dpkg-debを使用してlibgles1の新しいバージョンを偽造することでした。このパッケージはシステム上で冗長であるため、これは安全です。

Sudo ppa-purge -o  videolan -p stable-daily -d xenial

これで、新しいvlc(2.2.7)はなくなり、標準(クレイジー)vlcが復活しました。

$ vlc --version
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)

Sudo apt remove libgles1-mesaを実行します。これにより、Software Updaterがもう束ねられなくなります。

Software Updaterは、libgles2 v17.0.7とその他のさまざまな関連ライブラリをインストールするようになりました。

Sudo add-apt-repository ppa:videolan/stable-daily
Sudo apt update

apt list --upgradeableショー

libvlc5/xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 AMD64 [upgradable from: 2.2.2-5ubuntu0.16.04.3]
libvlccore8/xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 AMD64 [upgradable from: 2.2.2-5ubuntu0.16.04.3]
vlc/xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 AMD64 [upgradable from: 2.2.2-5ubuntu0.16.04.3]
vlc-data/xenial,xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 all [upgradable from: 2.2.2-5ubuntu0.16.04.3]
vlc-nox/xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 AMD64 [upgradable from: 2.2.2-5ubuntu0.16.04.3]
vlc-plugin-notify/xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 AMD64 [upgradable from: 2.2.2-5ubuntu0.16.04.3]
vlc-plugin-samba/xenial 2.2.2+git20170721+r59033+56~ubuntu16.04.1 AMD64 [upgradable from: 2.2.2-5ubuntu0.16.04.3]

ソフトウェアアップデータを実行します。 7つのdebsのうち5つをインストールします。

Start-Date: 2017-07-28  12:22:38
Commandline: aptdaemon role='role-commit-packages' sender=':1.208'
Upgrade: vlc-plugin-samba:AMD64 (2.2.2-5ubuntu0.16.04.3, 2.2.2+git20170721+r59033+56~ubuntu16.04.1), vlc-plugin-notify:AMD64    (2.2.2-5ubuntu0.16.04.3, 2.2.2+git20170721+r59033+56~ubuntu16.04.1), libvlc5:AMD64 (2.2.2-5ubuntu0.16.04.3, 2.2.2+git201707   21+r59033+56~ubuntu16.04.1), libvlccore8:AMD64 (2.2.2-5ubuntu0.16.04.3, 2.2.2+git20170721+r59033+56~ubuntu16.04.1), vlc-data   :AMD64 (2.2.2-5ubuntu0.16.04.3, 2.2.2+git20170721+r59033+56~ubuntu16.04.1)
End-Date: 2017-07-28  12:22:42

今すぐ実行

Sudo apt download libgles1-mesa
Sudo dpkg-deb -x ~/libgles1-mesa_12.0.6-0ubuntu0.16.04.1_AMD64.deb .
Sudo dpkg-deb --control ~/libgles1-mesa_12.0.6-0ubuntu0.16.04.1_AMD64.deb .

次のようにDEBIAN/control Depends行を変更します。

Depends: libglapi-mesa (= 17.0.7-0ubuntu0.16.04.1), libc6 (>= 2.2.5)

(libglapiが17.0.7にアップグレードされたため)

Sudo dpkg-deb -b . ~/libgles1-mesa_17.0.7-0ubuntu0.16.04.1_AMD64.deb
Sudo dpkg -i libgles1-mesa_17.0.7-0ubuntu0.16.04.1_AMD64.deb
Sudo apt install vlc-nox
Sudo apt install vlc

vlc --version出力

VLC media player 2.2.7 Umbrella (revision 2.2.2+git20170721+r59033+56~ubuntu16.04.1)

Software Updaterは問題なく実行されます。まあ私は決して!

5
WellINever

16.04.2にアップグレードしたときにこの問題が発生しました。ナイトリービルドはこれに同意しないようです。そのため、Universeリポジトリで利用可能なものに戻す必要がありました。

Sudo ppa-purge ppa:videolan/master-daily
Sudo apt-get update
Sudo apt-get autoremove
Sudo apt-get install vlc

それはそれを修正しました。 Synapticは、ppa:videolan/master-dailyを再度追加すると、nightly-buildが壊れていると報告します。

0
Julianne M.