KDE Neon 과 VLC. 알 수 없는 유착관계? vlc 삭제는 어떻게?

** 2020.02.20 현재, 아래 문제는 없다.


데스크탑에선 vlc 를 잘 쓰진 않는다. 보미 중단 이후에는 smplayer 를 사용하고 있다. (Bomi 는 18.04 까지는 그런대로 쓸 수 있었는데, 18.10 에선 컴파일이 되지 않는다. 내 능력으로는 해결이 어려울 듯…??) 물론, Android 에선 네트웍을 사용할 땐 vlc 를 사용한다.

KDE Neon 에서는, 적어도 우분투 18.04 기반판부터는 vlc 를 기본 설치한다. 기본 설치까지는 좋은데, ‘삭제’가 되지 않는 문제가 있다. 이른바 ‘의존성’ 때문이다.
vlc 를 지우려고 하면, 다음과 같은 무시무시한 경고를 볼 수 있다.

$ sudo apt remove vlc
[sudo] nemoneon의 암호: 
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
Starting pkgProblemResolver with broken count: 2
Starting 2 pkgProblemResolver with broken count: 2
Investigating (0) phonon4qt5-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mK Ib >
Broken phonon4qt5-backend-vlc:amd64 의존 on vlc:amd64 < 3.0.3-1-1ubuntu1 @ii pmR >
  Considering vlc:amd64 10004 as a solution to phonon4qt5-backend-vlc:amd64 12
  Removing phonon4qt5-backend-vlc:amd64 rather than change vlc:amd64
Investigating (0) phonon-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mK Ib >
Broken phonon-backend-vlc:amd64 의존 on vlc:amd64 < 3.0.3-1-1ubuntu1 @ii pmR >
  Considering vlc:amd64 10004 as a solution to phonon-backend-vlc:amd64 1
  Removing phonon-backend-vlc:amd64 rather than change vlc:amd64
Investigating (1) phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mK Ib >
Broken phonon4qt5:amd64 의존 on phonon4qt5-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mR >
  Considering phonon4qt5-backend-vlc:amd64 12 as a solution to phonon4qt5:amd64 41
  Added phonon4qt5-backend-vlc:amd64 to the remove list
Broken phonon4qt5:amd64 의존 on phonon4qt5-backend:amd64 < none @un H >
  Considering phonon4qt5-backend-vlc:amd64 12 as a solution to phonon4qt5:amd64 41
  Added phonon4qt5-backend-vlc:amd64 to the remove list
  Fixing phonon4qt5:amd64 via keep of phonon4qt5-backend-vlc:amd64
  Fixing phonon4qt5:amd64 via keep of phonon4qt5-backend-vlc:amd64
Investigating (1) phonon4qt5-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mK Ib >
Broken phonon4qt5-backend-vlc:amd64 의존 on vlc:amd64 < 3.0.3-1-1ubuntu1 @ii pmR >
  Considering vlc:amd64 10004 as a solution to phonon4qt5-backend-vlc:amd64 12
  Removing phonon4qt5-backend-vlc:amd64 rather than change vlc:amd64
Investigating (1) phonon:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mK Ib >
Broken phonon:amd64 의존 on phonon-backend-gstreamer:amd64 < none | 4:4.9.0-1+18.04+bionic+build4 @un uH >
  Considering phonon-backend-gstreamer:amd64 1 as a solution to phonon:amd64 2
  Try Installing phonon-backend-gstreamer:amd64 < none | 4:4.9.0-1+18.04+bionic+build4 @un uH > before changing phonon:amd64
Investigating (2) phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mK Ib >
Broken phonon4qt5:amd64 의존 on phonon4qt5-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mR >
  Considering phonon4qt5-backend-vlc:amd64 12 as a solution to phonon4qt5:amd64 41
  Added phonon4qt5-backend-vlc:amd64 to the remove list
Broken phonon4qt5:amd64 의존 on phonon4qt5-backend:amd64 < none @un H >
  Considering phonon4qt5-backend-vlc:amd64 12 as a solution to phonon4qt5:amd64 41
  Added phonon4qt5-backend-vlc:amd64 to the remove list
  Fixing phonon4qt5:amd64 via keep of phonon4qt5-backend-vlc:amd64
  Fixing phonon4qt5:amd64 via keep of phonon4qt5-backend-vlc:amd64
Investigating (2) phonon4qt5-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mK Ib >
Broken phonon4qt5-backend-vlc:amd64 의존 on vlc:amd64 < 3.0.3-1-1ubuntu1 @ii pmR >
  Considering vlc:amd64 10004 as a solution to phonon4qt5-backend-vlc:amd64 41
  Removing phonon4qt5-backend-vlc:amd64 rather than change vlc:amd64
Investigating (3) phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mK Ib >
Broken phonon4qt5:amd64 의존 on phonon4qt5-backend-vlc:amd64 < 0.10.1-2+18.04+bionic+build5 @ii mR >
  Considering phonon4qt5-backend-vlc:amd64 10004 as a solution to phonon4qt5:amd64 41
Broken phonon4qt5:amd64 의존 on phonon4qt5-backend:amd64 < none @un H >
  Considering phonon4qt5-backend-vlc:amd64 10004 as a solution to phonon4qt5:amd64 41
  Or group remove for phonon4qt5:amd64
Investigating (3) plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mK Ib >
Broken plasma-workspace:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to plasma-workspace:amd64 22
  Removing plasma-workspace:amd64 rather than change phonon4qt5:amd64
Investigating (3) libkf5notifyconfig5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mK Ib >
Broken libkf5notifyconfig5:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to libkf5notifyconfig5:amd64 18
  Removing libkf5notifyconfig5:amd64 rather than change phonon4qt5:amd64
Investigating (3) kio-extras:amd64 < 4:18.08.3-0xneon+18.04+bionic+build16 @ii mK Ib >
Broken kio-extras:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to kio-extras:amd64 16
  Removing kio-extras:amd64 rather than change phonon4qt5:amd64
Investigating (3) libkf5khtml5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mK Ib >
Broken libkf5khtml5:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to libkf5khtml5:amd64 12
  Removing libkf5khtml5:amd64 rather than change phonon4qt5:amd64
Investigating (3) libkf5khtml-bin:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mK Ib >
Broken libkf5khtml-bin:amd64 의존 on libkf5khtml5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mR >
  Considering libkf5khtml5:amd64 41 as a solution to libkf5khtml-bin:amd64 5
  Removing libkf5khtml-bin:amd64 rather than change libkf5khtml5:amd64
Investigating (3) libokular5core9:amd64 < 4:18.08.3-0xneon+18.04+bionic+build12 @ii mK Ib >
Broken libokular5core9:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to libokular5core9:amd64 5
  Removing libokular5core9:amd64 rather than change phonon4qt5:amd64
Investigating (3) powerdevil:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mK Ib >
Broken powerdevil:amd64 의존 on libkf5notifyconfig5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mR >
  Considering libkf5notifyconfig5:amd64 41 as a solution to powerdevil:amd64 4
  Removing powerdevil:amd64 rather than change libkf5notifyconfig5:amd64
Investigating (3) kinfocenter:amd64 < 4:5.14.3-0xneon+18.04+bionic+build19 @ii mK Ib >
Broken kinfocenter:amd64 의존 on plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mR >
  Considering plasma-workspace:amd64 41 as a solution to kinfocenter:amd64 4
  Removing kinfocenter:amd64 rather than change plasma-workspace:amd64
Investigating (3) systemsettings:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mK Ib >
Broken systemsettings:amd64 의존 on libkf5khtml5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mR >
  Considering libkf5khtml5:amd64 41 as a solution to systemsettings:amd64 4
  Removing systemsettings:amd64 rather than change libkf5khtml5:amd64
Investigating (3) sddm-theme-breeze:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mK Ib >
Broken sddm-theme-breeze:amd64 의존 on plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mR >
  Considering plasma-workspace:amd64 41 as a solution to sddm-theme-breeze:amd64 3
  Removing sddm-theme-breeze:amd64 rather than change plasma-workspace:amd64
Investigating (3) okular:amd64 < 4:18.08.3-0xneon+18.04+bionic+build12 @ii mK Ib >
Broken okular:amd64 의존 on libokular5core9:amd64 < 4:18.08.3-0xneon+18.04+bionic+build12 @ii mR > (= 4:18.08.3-0xneon+18.04+bionic+build12)
  Considering libokular5core9:amd64 41 as a solution to okular:amd64 3
  Removing okular:amd64 rather than change libokular5core9:amd64
Investigating (3) okular-extra-backends:amd64 < 4:18.08.3-0xneon+18.04+bionic+build12 @ii mK Ib >
Broken okular-extra-backends:amd64 의존 on libkf5khtml5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mR >
  Considering libkf5khtml5:amd64 41 as a solution to okular-extra-backends:amd64 3
  Removing okular-extra-backends:amd64 rather than change libkf5khtml5:amd64
Investigating (3) plasma-desktop:amd64 < 4:5.14.3-0xneon+18.04+bionic+build25 @ii mK Ib >
Broken plasma-desktop:amd64 의존 on plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mR >
  Considering plasma-workspace:amd64 41 as a solution to plasma-desktop:amd64 2
  Removing plasma-desktop:amd64 rather than change plasma-workspace:amd64
Investigating (3) plasma-widgets-addons:amd64 < 4:5.14.3-0xneon+18.04+bionic+build19 @ii mK Ib >
Broken plasma-widgets-addons:amd64 의존 on plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mR >
  Considering plasma-workspace:amd64 41 as a solution to plasma-widgets-addons:amd64 1
  Removing plasma-widgets-addons:amd64 rather than change plasma-workspace:amd64
Investigating (3) gwenview:amd64 < 4:18.08.3-0xneon+18.04+bionic+build13 @ii mK Ib >
Broken gwenview:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to gwenview:amd64 1
  Removing gwenview:amd64 rather than change phonon4qt5:amd64
Investigating (3) dolphin:amd64 < 4:18.08.3-0xneon+18.04+bionic+build12 @ii mK Ib >
Broken dolphin:amd64 의존 on phonon4qt5:amd64 < 4:4.10.1-0xneon+18.04+bionic+build4 @ii mR >
  Considering phonon4qt5:amd64 41 as a solution to dolphin:amd64 1
  Removing dolphin:amd64 rather than change phonon4qt5:amd64
Investigating (3) konsole:amd64 < 4:18.08.3-0xneon+18.04+bionic+build12 @ii mK Ib >
Broken konsole:amd64 의존 on libkf5notifyconfig5:amd64 < 5.51.0-0xneon+18.04+bionic+build13 @ii mR >
  Considering libkf5notifyconfig5:amd64 41 as a solution to konsole:amd64 1
  Removing konsole:amd64 rather than change libkf5notifyconfig5:amd64
Investigating (3) plasma-workspace-wayland:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mK Ib >
Broken plasma-workspace-wayland:amd64 의존 on plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mR > (= 4:5.14.3-0xneon+18.04+bionic+build20)
  Considering plasma-workspace:amd64 41 as a solution to plasma-workspace-wayland:amd64 1
  Removing plasma-workspace-wayland:amd64 rather than change plasma-workspace:amd64
Investigating (3) latte-dock:amd64 < 0.8.2-0xneon+18.04+bionic+build11 @ii mK Ib >
Broken latte-dock:amd64 의존 on plasma-desktop:amd64 < 4:5.14.3-0xneon+18.04+bionic+build25 @ii mR >
  Considering plasma-desktop:amd64 41 as a solution to latte-dock:amd64 0
  Removing latte-dock:amd64 rather than change plasma-desktop:amd64
Investigating (3) neon-desktop:amd64 < 4+p18.04+git20181030.2058 @ii mK NPb Ib >
Broken neon-desktop:amd64 의존 on kinfocenter:amd64 < 4:5.14.3-0xneon+18.04+bionic+build19 @ii mR >
  Considering kinfocenter:amd64 41 as a solution to neon-desktop:amd64 0
  Removing neon-desktop:amd64 rather than change kinfocenter:amd64
Investigating (3) arc-kde:amd64 < 20181023-172+pkg7~ubuntu18.04.1 @ii mK Ib >
Broken arc-kde:amd64 의존 on plasma-workspace:amd64 < 4:5.14.3-0xneon+18.04+bionic+build20 @ii mR > (>= 4:5.5.0)
  Considering plasma-workspace:amd64 41 as a solution to arc-kde:amd64 0
  Removing arc-kde:amd64 rather than change plasma-workspace:amd64
Investigating (4) xorg:amd64 < 1:7.7+19ubuntu7.1 @ii mK Ib >
Broken xorg:amd64 의존 on gnome-terminal:amd64 < none | 3.28.2-1ubuntu1~18.04.1 @un uH >
  Considering gnome-terminal:amd64 2 as a solution to xorg:amd64 1
  Try Installing gnome-terminal:amd64 < none | 3.28.2-1ubuntu1~18.04.1 @un uH > before changing xorg:amd64
Done
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  drkonqi gtk3-engines-breeze ieee-data kamera kded5 kgamma5 kio-extras-data
  konsole-kpart libaribb24-0 libbasicusageenvironment1 libcfitsio5 libchm1
  libcolorcorrect5 libdmtx0a libdolphinvcs5 libdvbpsi10 libebml4v5 libgps23
  libgroupsock8 libibus-1.0-5 libkf5activitiesstats1 libkf5baloowidgets-bin
  libkf5baloowidgets5 libkf5dnssd-data libkf5dnssd5 libkf5emoticons-bin
  libkf5emoticons-data libkf5emoticons5 libkf5js5 libkf5jsapi5
  libkf5jsembed-data libkf5jsembed5 libkf5khtml-data libkf5kiogui5
  libkf5kipi-data libkf5kipi32.0.0 libkf5notifyconfig-data libkf5people-data
  libkf5people5 libkf5peoplebackend5 libkf5peoplewidgets5 libkf5prison5
  libkf5xmlrpcclient-data libkf5xmlrpcclient5 libkfontinst5 libkfontinstui5
  liblivemedia62 libmarkdown2 libmatroska6v5 libmicrodns0 libminizip1 libnfs11
  libopenmpt-modplug1 libpam-kwallet5 libphonon4 libphonon4qt5-4 libplacebo4
  libpowerdevilcore2 libpowerdevilui5 libprotobuf-lite10 libproxy-tools
  libqalculate14 libqalculate14-data libqmobipocket2 libqrencode3
  libqt5concurrent5 libqt5webengine-data libqt5webengine5 libqt5webenginecore5
  libqt5webenginewidgets5 libre2-4 libresid-builder0c2a libscim8v5 libsidplay2
  libspectre1 libssh-4 libtaskmanager6 libupnp6 libusageenvironment3
  libvlc-bin libvlc5 libvlccore9 libxcb-dpms0 libxcb-record0 libxcb-xv0
  muon-notifier muon-updater pam-kwallet-init papirus-icon-theme phonon
  phonon-backend-gstreamer phonon-backend-gstreamer-common plasma-desktop-data
  plasma-integration powerdevil-data qdbus-qt5 qml-module-org-kde-activities
  qml-module-org-kde-extensionplugin qml-module-org-kde-kholidays
  qml-module-org-kde-kwindowsystem qml-module-org-kde-qqc2desktopstyle
  qml-module-org-kde-solid qml-module-qt-labs-folderlistmodel
  qml-module-qt-labs-settings qml-module-qtwebengine qml-module-qtwebkit
  qt4-style-kvantum qt5-style-kvantum qt5-style-kvantum-l10n
  qt5-style-kvantum-themes sddm sni-qt socat vlc-bin vlc-data vlc-l10n
  vlc-plugin-base vlc-plugin-notify vlc-plugin-qt vlc-plugin-samba
  vlc-plugin-skins2 vlc-plugin-video-output vlc-plugin-video-splitter
  vlc-plugin-visualization
Use 'sudo apt autoremove' to remove them.
다음의 추가 패키지가 설치될 것입니다 :
  enchant gnome-terminal gnome-terminal-data gstreamer1.0-pulseaudio gvfs
  gvfs-common gvfs-daemons gvfs-libs libbrotli1 libenchant1c2a libgck-1-0
  libgcr-base-3-1 libjavascriptcoregtk-4.0-18 libwebkit2gtk-4.0-37 libwoff1
  libyelp0 nautilus-extension-gnome-terminal phonon-backend-gstreamer
  phonon-backend-gstreamer-common yelp yelp-xsl
제안하는 패키지:
  gvfs-backends libenchant-voikko libwebkit2gtk-4.0-37-gtk2
  phonon4qt5-backend-gstreamer
다음 패키지를 지울 것입니다:
  arc-kde dolphin gwenview kinfocenter kio-extras konsole latte-dock
  libkf5khtml-bin libkf5khtml5 libkf5notifyconfig5 libokular5core9
  neon-desktop okular okular-extra-backends phonon-backend-vlc phonon4qt5
  phonon4qt5-backend-vlc plasma-desktop plasma-widgets-addons plasma-workspace
  plasma-workspace-wayland powerdevil sddm-theme-breeze systemsettings vlc
다음 새 패키지를 설치할 것입니다:
  enchant gnome-terminal gnome-terminal-data gstreamer1.0-pulseaudio gvfs
  gvfs-common gvfs-daemons gvfs-libs libbrotli1 libenchant1c2a libgck-1-0
  libgcr-base-3-1 libjavascriptcoregtk-4.0-18 libwebkit2gtk-4.0-37 libwoff1
  libyelp0 nautilus-extension-gnome-terminal phonon-backend-gstreamer
  phonon-backend-gstreamer-common yelp yelp-xsl
0개 업그레이드, 21개 새로 설치, 25개 제거 및 0개 업그레이드 안 함.
17.8 M바이트 아카이브를 받아야 합니다.
이 작업 후 58.0 M바이트의 디스크 공간이 비워집니다.
계속 하시겠습니까? [Y/n] 

의존성 문제 때문에 이런 현상이 벌어진다. 만약, 위 물음에 Yes, 또는 Enter 를 눌렀다면.. neon-desktop 을 재설치해야만 하는 귀찮고 짜증나는 일을 겪어야 한다.

왜 이런 현상이 벌어지는지?
‘의존성’ 관계를 알아내기 위하여 검색을 하다가, apt 의 숨겨진 명령어를 하나 알게 됐다.

apt depends 꾸러미
이 꾸러미가 설치되기 위해 필요한 다른 꾸러미들.

$ apt depends vlc
vlc
  의존: vlc-bin (= 3.0.3-1-1ubuntu1)
  의존: vlc-plugin-base (= 3.0.3-1-1ubuntu1)
  의존: vlc-plugin-qt (= 3.0.3-1-1ubuntu1)
  의존: vlc-plugin-video-output (= 3.0.3-1-1ubuntu1)
  추천: vlc-l10n (= 3.0.3-1-1ubuntu1)
  추천: vlc-plugin-notify (= 3.0.3-1-1ubuntu1)
  추천: vlc-plugin-samba (= 3.0.3-1-1ubuntu1)
  추천: vlc-plugin-skins2 (= 3.0.3-1-1ubuntu1)
  추천: vlc-plugin-video-splitter (= 3.0.3-1-1ubuntu1)
  추천: vlc-plugin-visualization (= 3.0.3-1-1ubuntu1)

위 결과에 따라, vlc 가 설치되기 위해서는 vlc-bin, vlc-plugin-base, vlc-plugin-qt, vlc-plugin-video-output 이렇게 4개의 다른 꾸러미가 필요하다.

반대로, 어떤 꾸러미를 의존하고 있는 꾸러미를 알고 싶다면? 예를 들어, vlc 를 의존하고 있는 꾸러미가 있다면?
그 때는 apt rdepends 를 사용한다.

apt rdepends 꾸러미
이 꾸러미에 의존하고 있는 다른 꾸러미들을 표시.
rdepends 는 Reverse Depends 를 뜻한다.

$ apt rdepends vlc
vlc
Reverse Depends:
  망가뜨림: vlc-plugin-qt (<< 3.0.0-1~)
 |의존: smtube
  의존: phonon4qt5-backend-vlc
  의존: phonon4qt5-backend-vlc
  의존: phonon4qt5-backend-vlc
  의존: phonon-backend-vlc
  의존: phonon-backend-vlc
  의존: phonon-backend-vlc
  추천: neon-desktop
  추천: neon-desktop
  추천: neon-desktop
  추천: neon-desktop
  의존: kaffeine
  의존: kaffeine
  의존: kaffeine
  향상: vlc-plugin-visualization
  향상: vlc-plugin-video-splitter
  향상: vlc-plugin-video-output
  향상: vlc-plugin-svg
  향상: vlc-plugin-skins2
  대체: vlc-plugin-skins2 (<< 3.0.0-1~)
  망가뜨림: vlc-plugin-skins2 (<< 3.0.0-1~)
  향상: vlc-plugin-samba
  대체: vlc-plugin-qt (<< 3.0.0-1~)
  망가뜨림: vlc-plugin-qt (<< 3.0.0-1~)
  향상: vlc-plugin-notify
  향상: vlc-plugin-jack
  향상: vlc-plugin-fluidsynth
  향상: vlc-plugin-access-extra
 |제안: vokoscreen
  의존: vlc-plugin-vlsub (>= 2.2.0~)
  향상: vlc-plugin-visualization
  향상: vlc-plugin-video-splitter
  향상: vlc-plugin-video-output
  향상: vlc-plugin-svg
  향상: vlc-plugin-skins2
  대체: vlc-plugin-skins2 (<< 3.0.0-1~)
  망가뜨림: vlc-plugin-skins2 (<< 3.0.0-1~)
  향상: vlc-plugin-samba
  대체: vlc-plugin-qt (<< 3.0.0-1~)
  의존: freeplayer (>= 0.8.6b)
  향상: vlc-plugin-notify
  향상: vlc-plugin-jack
  향상: vlc-plugin-fluidsynth
  향상: vlc-plugin-access-extra
  추천: ubuntu-mate-desktop
 |제안: tunapie
  제안: streamtuner2
 |의존: smtube
 |추천: python-mecavideo
 |추천: pidgin-mpris
  추천: obs-plugins
  추천: multimedia-players
  제안: multimedia-broadcasting
 |추천: mediathekview
 |추천: lxde
  추천: kubuntu-full
  추천: kubuntu-desktop
  추천: junior-video
  의존: hdhomerun-config-gui
 |제안: gaupol
  의존: freetuxtv
  의존: browser-plugin-vlc
  의존: forensics-extra-gui
 |추천: emms
  의존: cinnamon-desktop-environment

앞쪽에 phonon4qt5-backend-vlc 가 나와있다. 이 꾸러미는 vlc 에 의존하고 있으며 다시 말해, 얘가 설치되려면 먼저 vlc 가 설치되어 있어야 한다는 뜻이 된다.

보통, 이런 부수 꾸러미(?)에는 의존하는 다른 꾸러미가 없는게 보통이다. vlc 에 의존하는 꾸러미이므로, 이 꾸러미를 다른 꾸러미가 의존하는게 좀 이상하지 않은가?
그런데, 이런 이상한 일이 KDE Neon 에선 일어나고 있다.

먼저 phonon4qt5-backend-vlc가 의존하는, 즉 이 꾸러미를 설치하기 위해 선행 설치되어야할 꾸러미를 알아보자.

# KDE Neon
$ apt depends phonon4qt5-backend-vlc
phonon4qt5-backend-vlc
  Depends: vlc
  Depends: libc6 (>= 2.14)
  Depends: libphonon4qt5-4 (>= 4:4.10.1)
  Depends: libqt5core5a (>= 5.11.1+dfsg)
  Depends: libqt5gui5 (>= 5.11.1+dfsg)
  Depends: libqt5widgets5 (>= 5.11.1+dfsg)
  Depends: libstdc++6 (>= 4.1.1)
  Depends: libvlc5 (>= 3.0.0)
  Depends: libvlccore9 (>= 2.0.1)
  Depends: phonon4qt5

이런 프로그램들이 먼저 설치가 된 다음에야 phonon4qt-backend-vlc 를 설치할 수 있다. vlc 에 종속된 프로그램이므로, 당연히 vlc 가 설치돼 있어야 할테고, qt 관련 꾸러미도 당연히 필요하다.
아래에서 다시 언급하겠지만, phono4qt5 의존은 뭔가 문제로 인해 발생했다고 본다.

그럼.. 여기서 이 꾸러미를 필요로 하는 다른 꾸러미가 있는지 살펴본다면? phonon4qt5-backend-vlc 에 의존하는 꾸러미, 즉, 이 꾸러미를 반드시 필요로 하는 꾸러미는?

$ apt rdepends phonon4qt5-backend-vlc
phonon4qt5-backend-vlc
Reverse Depends:
  Depends: phonon4qt5-backend-vlc-dbgsym (= 0.10.1-2+18.04+bionic+build3)
  Depends: phonon4qt5-backend-vlc-dbgsym (= 0.10.1-2+18.04+bionic+build4)
  Depends: phonon4qt5-backend-vlc-dbgsym (= 0.10.1-2+18.04+bionic+build5)
  Breaks: libvlc5 (<< 0.9.1-2~)
  Suggests: phonon4qt5
 |Depends: phonon4qt5
  Suggests: phonon4qt5
 |Depends: phonon4qt5
  Suggests: phonon4qt5
 |Depends: phonon4qt5
  Recommends: neon-desktop
  Recommends: neon-desktop
  Recommends: neon-desktop
  Recommends: neon-desktop
  Breaks: libvlc5 (<< 0.9.1-2~)
  Suggests: phonon4qt5
 |Depends: phonon4qt5

뭔가 좀 복잡하게 나오고, 같은 값이 중복되어 나오기도 한다. 그러나, phono4qt5가 의존성 목록에 나와있음은 볼 수 있다. 다시 한번 확인을 해보자.

#KDE Neon
$ apt depends phonon4qt5
phonon4qt5
  Depends: libphonon4qt5-4 (>= 4:4.10.1-0xneon+18.04+bionic+build4)
 |Depends: debconf (>= 0.5)
  Depends: <debconf-2.0>
    cdebconf
    debconf
 |Depends: phonon4qt5-backend-vlc
  Depends: <phonon4qt5-backend>
    phonon4qt5-backend-gstreamer
    phonon4qt5-backend-null
    phonon4qt5-backend-vlc
  Suggests: phonon4qt5-backend-gstreamer
  Suggests: phonon4qt5-backend-vlc

이 꾸러미는, phonon4qt5-backend-vlc 또는 phonon4qt5-backend 를 필요로 함을 알 수 있다.

뭐라고?? 그렇다는 얘기는, phonon4qt5-backend-vlc 와 phonon4qt5 서로가 서로를 필요로 하고 있다는 얘기가 된다. 이런 경우는 처음 본다.
Kubuntu 18.04 나 Kubuntu 18.10 에선 이렇질 않다.

# Kubuntu 18.10
$ apt depends phonon4qt5-backend-vlc
phonon4qt5-backend-vlc
  Depends: vlc-plugin-base
  Depends: vlc-plugin-video-output
  Depends: libc6 (>= 2.14)
  Depends: libphonon4qt5-4 (>= 4:4.10.0~)
  Depends: libqt5core5a (>= 5.9.0~beta)
  Depends: libqt5gui5 (>= 5.0.2)
  Depends: libqt5widgets5 (>= 5.0.2)
  Depends: libstdc++6 (>= 4.1.1)
  Depends: libvlc5 (>= 3.0.0)
  Depends: libvlccore9 (>= 2.0.1)

위에 있는 KDE Neon 과는 달리, phonon4qt5-backend-vlcphonon4qt5 를 필요로 하지 않는다. 이게 정상인 듯 하다.
phono4qt5 의 의존성은 두 배포판이 모두 동일하다.

# Kubuntu 18.10
$ apt depends phonon4qt5
phonon4qt5
  Depends: libphonon4qt5-4 (>= 4:4.10.1-1)
 |Depends: debconf (>= 0.5)
  Depends: <debconf-2.0>
    cdebconf
    debconf
 |Depends: phonon4qt5-backend-vlc
  Depends: <phonon4qt5-backend>
    phonon4qt5-backend-gstreamer
    phonon4qt5-backend-null
    phonon4qt5-backend-vlc
  Suggests: phonon4qt5-backend-gstreamer
  Suggests: phonon4qt5-backend-vlc

복잡한 얘기를 했지만, 결론은 이렇다.
vlc 를 지우려면, vlc 에 의존하고 있는 phonon4qt5-backend-vlc 를 먼저 지워야 한다. 그런데, 이걸 지우려면, 이것이 없으면 죽고 못사는 phonon4qt5 도 지워야 한다.
여기서 큰 문제가 발생한다.
phonon4qt5 에 의존하는 꾸러미 중엔 plasma desktop 도 있고, 굵직한 다른 꾸러미들도 꽤 많다. 다시 말해, 이 꾸러미가 없으면 KDE Plasma 가 존재할 수가 없다.
따라서, 결국 vlc 를 지우려면 KDE Plasma 를 지워야하는 사태가 발생(발발(勃發)?)하게 된다!


그러면, 도대체 vlc 를 지울 수는 있는 건가?? 무시무시한 의존성 협박을 넘어서면서 지워야 하나?

물론, 간단히 해결할 방법은 있다. 그 실마리도 위에 이미 써놨다.

phonon4qt5 는 phonon4qt5-backend-vlc 또는 phonon4qt5-backend 를 의존하고 있다. phonon4qt5-backend-vlc 는 이미 설치되어 있지만, phonon4qt5-backend 는 설치되어 있지 않다. 그럼 이걸 설치해주면 의존성이 성립되지 않을까?

그렇게 생각했으나, phonon4qt5-backend 는 아마도 가상 꾸러미인 듯 하다.
설치를 해보려고 했더니, 이런 설명을 해준다.

$ sudo apt install phonon4qt5-backend
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package phonon4qt5-backend is a virtual package provided by:
  phonon4qt5-backend-vlc 0.10.1-2
  phonon4qt5-backend-null 4:4.10.1-1
  phonon4qt5-backend-gstreamer 4:4.9.0-1
You should explicitly select one to install.

E: Package 'phonon4qt5-backend' has no installation candidate

이건 가상 꾸러미이니, 셋 중 하나를 택하라고.
null 은 또 다른 가상의 냄새가 나고, 실제 backend 는 phonon4qt5-backend-gstreamer 로 보인다.
그렇다면, 이걸 설치하면, phonon4qt5-backend-vlc 를 삭제할 수 있을 거라, 지금껏 살아온 ‘눈치’로, 또는 혹자는 ‘추리력’으로 말하는 ‘논리’로 짐작해볼 수 있다.

apt remove 는 자동작업이 많이 일어나므로, 좀 더 확실하게 하기 위해 dpkg -r 을 사용해봤다.
이제부터 나오는 명령은 모두 KDE Neon 환경에서 실행했다.

$ sudo dpkg -r phonon4qt5-backend-vlc
dpkg: dependency problems prevent removal of phonon4qt5-backend-vlc:amd64:
 phonon4qt5:amd64 depends on phonon4qt5-backend-vlc | phonon4qt5-backend; however:
  Package phonon4qt5-backend-vlc:amd64 is to be removed.
  Package phonon4qt5-backend is not installed.
  Package phonon4qt5-backend-vlc:amd64 which provides phonon4qt5-backend is to be removed.
 phonon4qt5:amd64 depends on phonon4qt5-backend-vlc | phonon4qt5-backend; however:
  Package phonon4qt5-backend-vlc:amd64 is to be removed.
  Package phonon4qt5-backend is not installed.
  Package phonon4qt5-backend-vlc:amd64 which provides phonon4qt5-backend is to be removed.

dpkg: error processing package phonon4qt5-backend-vlc:amd64 (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 phonon4qt5-backend-vlc:amd64

지우려고 했더니, 이런 소리를 한다.

phonon4qt5:amd64 depends on phonon4qt5-backend-vlc | phonon4qt5-backend; 

phonon4qt5 가, phonon4qt5-backend-vlc 또는 phonon4qt5-backend 를 의존하고 있으니, 둘 중 하나는 있어야 하는데, phonon4qt5-backend-vlc 를 지운다면, phonon4qt5 가 의존할 꾸러미가 없어지므로 규칙 위반이 된다.
따라서, phonon4qt5-backend-vlc 를 삭제할 수는 없다.

그렇다면, phonon4qt5-backend 를 설치해주면 되고, 이 꾸러미는 결국 phonon4qt5-backend-gstreamer 라는 걸 위에서 밝혀냈었다. 고민하지 말고 설치한다.

$ sudo apt install phonon4qt5-backend-gstreamer
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Starting pkgProblemResolver with broken count: 0
Starting 2 pkgProblemResolver with broken count: 0
Done
The following additional packages will be installed:
  phonon-backend-gstreamer-common
Suggested packages:
  phonon-backend-gstreamer
The following NEW packages will be installed:
  phonon-backend-gstreamer-common phonon4qt5-backend-gstreamer
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 129 kB of archives.
After this operation, 455 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://archive.neon.kde.org/user bionic/main amd64 phonon-backend-gstreamer-common amd64 4:4.9.0-1+18.04+bionic+build4 [13.5 kB]
Get:2 http://archive.neon.kde.org/user bionic/main amd64 phonon4qt5-backend-gstreamer amd64 4:4.9.0-1+18.04+bionic+build4 [115 kB]
Fetched 129 kB in 2s (67.2 kB/s)                      
Selecting previously unselected package phonon-backend-gstreamer-common:amd64.
(Reading database ... 142949 files and directories currently installed.)
Preparing to unpack .../phonon-backend-gstreamer-common_4%3a4.9.0-1+18.04+bionic+build4_amd64.deb ...
Unpacking phonon-backend-gstreamer-common:amd64 (4:4.9.0-1+18.04+bionic+build4) ...
Selecting previously unselected package phonon4qt5-backend-gstreamer:amd64.
Preparing to unpack .../phonon4qt5-backend-gstreamer_4%3a4.9.0-1+18.04+bionic+build4_amd64.deb ...
Unpacking phonon4qt5-backend-gstreamer:amd64 (4:4.9.0-1+18.04+bionic+build4) ...
Setting up phonon-backend-gstreamer-common:amd64 (4:4.9.0-1+18.04+bionic+build4) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Setting up phonon4qt5-backend-gstreamer:amd64 (4:4.9.0-1+18.04+bionic+build4) ...

그리고 나면, 드디어!

$ sudo dpkg -r phonon4qt5-backend-vlc
(Reading database ... 142961 files and directories currently installed.)
Removing phonon4qt5-backend-vlc:amd64 (0.10.1-2+18.04+bionic+build5) ...

지워졌다! 이제 vlc 도 삭제해버릴 수 있겠지!!!

그러나! (또?)
의존하는 꾸러미가 하나 더 있다. 이름도 비슷하다. 바로 phonon-backend-vlc 이다. 마찬가지로 phonon-backend-gstreamer 를 설치해줘야 한다.

$ sudo apt install phonon-backend-gstreamer

이제 정말로 vlc 를 지울 수 있게 됐다.


정리! 다음 두 꾸러미를 설치하면 vlc 를 지울 수 있게 된다.

$ sudo apt install phonon-backend-gstreamer
$ sudo apt install phonon4qt5-backend-gstreamer

그리고 삭제.

$ sudo apt remove vlc

이렇게 애써 vlc 를 지우려고 한 이유는, snap 으로 최신판을 설치하기 위함이다.
사실, Deb 꾸러미와 Snap 으로 설치한 두 프로그램이 동시에 존재해도 큰 상관은 없다. 설치 위치는 확연히 다르고, 설정 파일 위치도 다르다.

# 설정파일 Deb 설치 vlc
/home/userx/.config/vlc/vlcrc
/home/userx/.config/vlcrc

# 설정파일 Snap 설치 vlc
/home/userx/snap/vlc/555/.config/vlcrc
/home/userx/snap/vlc/common/vlcrc

따라서, 두 개 모두 설치되어 있어도 큰 문제가 발생할 일은 없다. (없을 듯 하다. ^^)
그러나, 프로그램 메뉴에 두 개가 등록이 되어 있어서 조금 헷갈릴 수는 있다.
.desktop 파일 위치는 다음과 같다.

#Deb
/usr/share/applications/vlc.desktop

#Snap
/snap/vlc/555/meta/gui/vlc.desktop
/snap/vlc/555/usr/share/applications/vlc.desktop

Snap 의 경우, 디렉토리가 2개가 있는데, 무슨 차이가 있는 지는 모르겠다.
Snap 용 vlc 만 표시되게 하고 싶다면, Deb 용 .desktop 파일을 살짝 수정하여 보이지 않게 할 수는 있다.

# /usr/share/applications/vlc.desktop 에 다음 행을 추가.
NoDisplay=true

마지막으로, snap 을 통해 vlc 를 설치하려면,

$ sudo snap install vlc

끝!

안녕하세요. 글 남겨주셔서 고맙습니다.