为什么有些 apt 软件包依赖关系这么糟糕?例如 emacsen-common?

为什么有些 apt 软件包依赖关系这么糟糕?例如 emacsen-common?

我正在清理 emacs 组件,以便安装我自己的组件(因为 emacs 25 太旧了)。它有一个荒谬的依赖项列表,会随它一起卸载。事实上,它会卸载并重新安装一些软件包。Gnome、X 服务器等都依赖于 emacsen-common?真的吗?

$ sudo apt-get -s purge emacsen-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apg apturl-common docutils-common evolution-data-server evolution-data-server-common gedit-common gir1.2-accountsservice-1.0 gir1.2-clutter-1.0 gir1.2-cogl-1.0
  gir1.2-coglpango-1.0 gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomebluetooth-1.0 gir1.2-gtksource-3.0 gir1.2-gweather-3.0
  gir1.2-javascriptcoregtk-4.0 gir1.2-json-1.0 gir1.2-mutter-2 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-rb-3.0 gir1.2-upowerglib-1.0 gjs gkbd-capplet gnome-control-center-faces
  gnome-software-common gnome-themes-extra gnome-themes-extra-data gnome-todo-common libappstream-glib8 libcamel-1.2-61 libcolord-gtk1 libdazzle-1.0-0 libdmapsharing-3.0-2
  libebackend-1.2-10 libebook-1.2-19 libebook-contacts-1.2-2 libecal-1.2-19 libedata-book-1.2-25 libedata-cal-1.2-28 libedataserver-1.2-23 libgjs0g libgnome-todo
  libgnomekbd-common libgnomekbd8 libgpod-common libgpod4 libgspell-1-common libgtop-2.0-11 libgtop2-common libjavascriptcoregtk-4.0-18 libmetacity1 libmozjs-52-0
  libphonenumber7 libprotobuf10 libsgutils2-2 libsysmetrics1 libwhoopsie-preferences0 libxatracker2 libxfont2 libxklavier16 libxvmc1 metacity-common
  mobile-broadband-provider-info network-manager-gnome python3-docutils python3-html5lib python3-macaroonbakery python3-mako python3-markdown python3-markups
  python3-markupsafe python3-nacl python3-protobuf python3-pygments python3-pymacaroons python3-rfc3339 python3-roman python3-textile python3-tz python3-webencodings
  shotwell-common ubuntu-system-service update-notifier-common whoopsie-preferences x11-xkb-utils xfonts-base xfonts-encodings xfonts-scalable xfonts-utils xinput
  xserver-common xserver-xephyr xserver-xorg xserver-xorg-core xserver-xorg-input-all xserver-xorg-input-libinput xserver-xorg-input-wacom xserver-xorg-legacy
  xserver-xorg-video-all xserver-xorg-video-amdgpu xserver-xorg-video-ati xserver-xorg-video-fbdev xserver-xorg-video-intel xserver-xorg-video-nouveau xserver-xorg-video-qxl
  xserver-xorg-video-radeon xserver-xorg-video-vesa xserver-xorg-video-vmware xwayland yelp-xsl zenity-common
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  apt-clone apt-config-icons-hidpi apt-config-icons-large apt-config-icons-large-hidpi apt-xapian-index archdetect-deb baloo-kf5 bluedevil breeze breeze-cursor-theme
  breeze-gtk-theme breeze-icon-theme btrfs-tools catdoc cryptsetup cryptsetup-bin dmraid docbook-xml docbook-xsl drkonqi fonts-hack fonts-hack-ttf fonts-noto
  fonts-noto-hinted fonts-noto-unhinted fonts-oxygen frameworkintegration ieee-data kactivities-bin kactivitymanagerd kde-cli-tools kde-cli-tools-data kde-config-gtk-style
  kde-config-screenlocker kde-config-sddm kde-style-breeze kde-style-breeze-qt4 kde-style-oxygen-qt5 kde-window-manager kded5 kdelibs5-data kdoctools5 kgamma5 khelpcenter
  khotkeys khotkeys-data kinfocenter kinit kio kio-extras kio-extras-data kmenuedit kpackagelauncherqml kpackagetool5 kpartx kpartx-boot kscreen ksshaskpass ksysguard
  ksysguard-data ksysguardd ktexteditor-data ktexteditor-katepart kwalletmanager kwayland-data kwayland-integration kwin-common kwin-data kwin-style-breeze kwin-x11 kwrited
  libappstreamqt2 libaribb24-0 libattica0.4 libbasicusageenvironment1 libcddb2 libcln6 libcolorcorrect5 libdbusmenu-qt2 libdbusmenu-qt5-2 libdca0 libdebian-installer4
  libdlrestrictions1 libdmraid1.0.0.rc16 libdmtx0a libdvbpsi10 libebml4v5 libeditorconfig0 libepub0 libfaad2 libfam0 libgit2-26 libgps23 libgrantlee-templates5 libgroupsock8
  libhfstospell9 libhttp-parser2.7.1 libjs-underscore libkate1 libkdecorations2-5v5 libkdecorations2private5v5 libkdecore5 libkdeui5 libkf5activities5 libkf5activitiesstats1
  libkf5archive5 libkf5attica5 libkf5auth-data libkf5auth5 libkf5baloo5 libkf5balooengine5 libkf5bluezqt-data libkf5bluezqt6 libkf5bookmarks-data libkf5bookmarks5
  libkf5calendarevents5 libkf5codecs-data libkf5codecs5 libkf5completion-data libkf5completion5 libkf5config-bin libkf5config-data libkf5configcore5 libkf5configgui5
  libkf5configwidgets-data libkf5configwidgets5 libkf5coreaddons-data libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-bin libkf5dbusaddons-data libkf5dbusaddons5
  libkf5declarative-data libkf5declarative5 libkf5dnssd-data libkf5dnssd5 libkf5doctools5 libkf5emoticons-bin libkf5emoticons-data libkf5emoticons5 libkf5filemetadata-bin
  libkf5filemetadata-data libkf5filemetadata3 libkf5globalaccel-bin libkf5globalaccel-data libkf5globalaccel5 libkf5globalaccelprivate5 libkf5guiaddons5 libkf5holidays-data
  libkf5holidays5 libkf5i18n-data libkf5i18n5 libkf5iconthemes-bin libkf5iconthemes-data libkf5iconthemes5 libkf5idletime5 libkf5itemmodels5 libkf5itemviews-data
  libkf5itemviews5 libkf5jobwidgets-data libkf5jobwidgets5 libkf5js5 libkf5jsembed-data libkf5jsembed5 libkf5kcmutils-data libkf5kcmutils5 libkf5kdelibs4support-data
  libkf5kdelibs4support5 libkf5kdelibs4support5-bin libkf5khtml-bin libkf5khtml-data libkf5khtml5 libkf5kiocore5 libkf5kiofilewidgets5 libkf5kiogui5 libkf5kiontlm5
  libkf5kiowidgets5 libkf5kirigami2-5 libkf5networkmanagerqt6 libkf5newstuff-data libkf5newstuff5 libkf5newstuffcore5 libkf5notifications-data libkf5notifications5
  libkf5notifyconfig-data libkf5notifyconfig5 libkf5package-data libkf5package5 libkf5parts-data libkf5parts-plugins libkf5parts5 libkf5people-data libkf5people5
  libkf5peoplebackend5 libkf5peoplewidgets5 libkf5plasma5 libkf5plasmaquick5 libkf5prison5 libkf5pty-data libkf5pty5 libkf5quickaddons5 libkf5runner5 libkf5screen-bin
  libkf5screen7 libkf5service-bin libkf5service-data libkf5service5 libkf5solid5 libkf5solid5-data libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5 libkf5style5
  libkf5su-bin libkf5su-data libkf5su5 libkf5syntaxhighlighting-data libkf5syntaxhighlighting5 libkf5sysguard-bin libkf5sysguard-data libkf5texteditor5
  libkf5texteditor5-libjs-underscore libkf5textwidgets-data libkf5textwidgets5 libkf5threadweaver5 libkf5wallet-bin libkf5wallet-data libkf5wallet5 libkf5waylandclient5
  libkf5waylandserver5 libkf5widgetsaddons-data libkf5widgetsaddons5 libkf5windowsystem-data libkf5windowsystem5 libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5
  libkf5xmlrpcclient-data libkf5xmlrpcclient5 libkfontinst5 libkfontinstui5 libkscreenlocker5 libksgrd7 libksignalplotter7 libkwalletbackend5-5 libkwin4-effect-builtins1
  libkwineffects11 libkwinglutils11 libkwinxrenderutils11 libkworkspace5-5 liblivemedia62 liblmdb0 libmatroska6v5 libmicrodns0 libmpcdec6 libnfs11 libopenmpt-modplug1
  liboxygenstyle5-5 liboxygenstyleconfig5-5 libpackagekitqt5-1 libpam-kwallet-common libpam-kwallet5 libphonon4qt5-4 libplacebo4 libplasma-geolocation-interface5
  libpolkit-qt5-1-1 libpoppler-qt5-1 libpowerdevilcore2 libpowerdevilui5 libprocesscore7 libprocessui7 libprotobuf-lite10 libproxy-tools libqalculate6 libqalculate6-data
  libqapt3 libqapt3-runtime libqrencode3 libqt4-svg libqt5multimediaquick-p5 libqt5quickcontrols2-5 libqt5quicktemplates2-5 libqt5texttospeech5 libqt5waylandclient5
  libqt5waylandcompositor5 libresid-builder0c2a libscim8v5 libsdl-image1.2 libsidplay2 libtaskmanager6 libupnp6 libusageenvironment3 libva-wayland2 libvlc-bin libvlc5
  libvlccore9 libvoikko1 libweather-ion7 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-record0 libxml2-utils libzip4 milou oxygen-sounds phonon4qt5
  phonon4qt5-backend-vlc plasma-desktop plasma-desktop-data plasma-discover plasma-discover-common plasma-framework plasma-integration
  plasma-look-and-feel-org-kde-breezedark-desktop plasma-pa plasma-workspace polkit-kde-agent-1 powerdevil powerdevil-data pulseaudio-module-gconf python3-dbus.mainloop.pyqt5
  python3-icu python3-pam python3-pyqt5.qtsvg python3-xapian qapt-batch qdbus-qt5 qml-module-org-kde-activities qml-module-org-kde-bluezqt qml-module-org-kde-draganddrop
  qml-module-org-kde-extensionplugin qml-module-org-kde-kcm qml-module-org-kde-kconfig qml-module-org-kde-kcoreaddons qml-module-org-kde-kholidays qml-module-org-kde-kio
  qml-module-org-kde-kirigami2 qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-org-kde-kwindowsystem qml-module-org-kde-newstuff
  qml-module-org-kde-qqc2desktopstyle qml-module-org-kde-runnermodel qml-module-org-kde-solid qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings
  qml-module-qtgraphicaleffects qml-module-qtmultimedia qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls-styles-breeze
  qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-privatewidgets qml-module-qtquick-templates2
  qml-module-qtquick-virtualkeyboard qml-module-qtquick-window2 qml-module-qtquick2 qtvirtualkeyboard-plugin qtwayland5 rdate sgml-data sni-qt socat software-properties-kde
  sonnet-plugins systemsettings ubiquity ubiquity-casper ubiquity-frontend-kde ubiquity-ubuntu-artwork ubuntu-release-upgrader-qt user-manager vlc-data vlc-plugin-base
  vlc-plugin-video-output
Suggested packages:
  app-install-data keyutils docbook docbook-dsssl docbook-defguide dbtoepub docbook-xsl-doc-html | docbook-xsl-doc-pdf | docbook-xsl-doc-text | docbook-xsl-doc
  docbook-xsl-saxon fop libsaxon-java libxalan2-java libxslthl-java xalan kde-config-gtk-style-preview kwin-addons pi fam gpsd hspell voikko-fi phonon4qt5-backend-gstreamer
  python3-pam-dbg xapian-doc perlsgml w3-recs opensp libdvdcss2
The following packages will be REMOVED:
  apturl* aspell* aspell-en* chrome-gnome-shell* deja-dup* dictionaries-common* emacsen-common* enchant* gdm3* gedit* gir1.2-webkit2-4.0* gnome-calendar*
  gnome-control-center* gnome-getting-started-docs* gnome-initial-setup* gnome-online-accounts* gnome-shell* gnome-shell-extensions* gnome-software*
  gnome-software-plugin-snap* gnome-todo* gnome-user-docs* gnome-user-guide* hunspell-en-au* hunspell-en-ca* hunspell-en-gb* hunspell-en-us* hunspell-en-za* hyphen-en-ca*
  hyphen-en-gb* hyphen-en-us* libedataserverui-1.2-2* libenchant1c2a* libgoa-backend-1.0-1* libgspell-1-1* libwebkit2gtk-4.0-37* libyelp0* metacity* mutter* mythes-en-au*
  mythes-en-us* nautilus-share* python3-enchant* retext* rhythmbox-plugins* shotwell* ubuntu-docs* ubuntu-release-upgrader-gtk* ubuntu-session* ubuntu-software*
  update-manager* update-notifier* wbritish* yelp* zenity*
The following NEW packages will be installed:
  apt-clone apt-config-icons-hidpi apt-config-icons-large apt-config-icons-large-hidpi apt-xapian-index archdetect-deb baloo-kf5 bluedevil breeze breeze-cursor-theme
  breeze-gtk-theme breeze-icon-theme btrfs-tools catdoc cryptsetup cryptsetup-bin dmraid docbook-xml docbook-xsl drkonqi fonts-hack fonts-hack-ttf fonts-noto
  fonts-noto-hinted fonts-noto-unhinted fonts-oxygen frameworkintegration ieee-data kactivities-bin kactivitymanagerd kde-cli-tools kde-cli-tools-data kde-config-gtk-style
  kde-config-screenlocker kde-config-sddm kde-style-breeze kde-style-breeze-qt4 kde-style-oxygen-qt5 kde-window-manager kded5 kdelibs5-data kdoctools5 kgamma5 khelpcenter
  khotkeys khotkeys-data kinfocenter kinit kio kio-extras kio-extras-data kmenuedit kpackagelauncherqml kpackagetool5 kpartx kpartx-boot kscreen ksshaskpass ksysguard
  ksysguard-data ksysguardd ktexteditor-data ktexteditor-katepart kwalletmanager kwayland-data kwayland-integration kwin-common kwin-data kwin-style-breeze kwin-x11 kwrited
  libappstreamqt2 libaribb24-0 libattica0.4 libbasicusageenvironment1 libcddb2 libcln6 libcolorcorrect5 libdbusmenu-qt2 libdbusmenu-qt5-2 libdca0 libdebian-installer4
  libdlrestrictions1 libdmraid1.0.0.rc16 libdmtx0a libdvbpsi10 libebml4v5 libeditorconfig0 libepub0 libfaad2 libfam0 libgit2-26 libgps23 libgrantlee-templates5 libgroupsock8
  libhfstospell9 libhttp-parser2.7.1 libjs-underscore libkate1 libkdecorations2-5v5 libkdecorations2private5v5 libkdecore5 libkdeui5 libkf5activities5 libkf5activitiesstats1
  libkf5archive5 libkf5attica5 libkf5auth-data libkf5auth5 libkf5baloo5 libkf5balooengine5 libkf5bluezqt-data libkf5bluezqt6 libkf5bookmarks-data libkf5bookmarks5
  libkf5calendarevents5 libkf5codecs-data libkf5codecs5 libkf5completion-data libkf5completion5 libkf5config-bin libkf5config-data libkf5configcore5 libkf5configgui5
  libkf5configwidgets-data libkf5configwidgets5 libkf5coreaddons-data libkf5coreaddons5 libkf5crash5 libkf5dbusaddons-bin libkf5dbusaddons-data libkf5dbusaddons5
  libkf5declarative-data libkf5declarative5 libkf5dnssd-data libkf5dnssd5 libkf5doctools5 libkf5emoticons-bin libkf5emoticons-data libkf5emoticons5 libkf5filemetadata-bin
  libkf5filemetadata-data libkf5filemetadata3 libkf5globalaccel-bin libkf5globalaccel-data libkf5globalaccel5 libkf5globalaccelprivate5 libkf5guiaddons5 libkf5holidays-data
  libkf5holidays5 libkf5i18n-data libkf5i18n5 libkf5iconthemes-bin libkf5iconthemes-data libkf5iconthemes5 libkf5idletime5 libkf5itemmodels5 libkf5itemviews-data
  libkf5itemviews5 libkf5jobwidgets-data libkf5jobwidgets5 libkf5js5 libkf5jsembed-data libkf5jsembed5 libkf5kcmutils-data libkf5kcmutils5 libkf5kdelibs4support-data
  libkf5kdelibs4support5 libkf5kdelibs4support5-bin libkf5khtml-bin libkf5khtml-data libkf5khtml5 libkf5kiocore5 libkf5kiofilewidgets5 libkf5kiogui5 libkf5kiontlm5
  libkf5kiowidgets5 libkf5kirigami2-5 libkf5networkmanagerqt6 libkf5newstuff-data libkf5newstuff5 libkf5newstuffcore5 libkf5notifications-data libkf5notifications5
  libkf5notifyconfig-data libkf5notifyconfig5 libkf5package-data libkf5package5 libkf5parts-data libkf5parts-plugins libkf5parts5 libkf5people-data libkf5people5
  libkf5peoplebackend5 libkf5peoplewidgets5 libkf5plasma5 libkf5plasmaquick5 libkf5prison5 libkf5pty-data libkf5pty5 libkf5quickaddons5 libkf5runner5 libkf5screen-bin
  libkf5screen7 libkf5service-bin libkf5service-data libkf5service5 libkf5solid5 libkf5solid5-data libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5 libkf5style5
  libkf5su-bin libkf5su-data libkf5su5 libkf5syntaxhighlighting-data libkf5syntaxhighlighting5 libkf5sysguard-bin libkf5sysguard-data libkf5texteditor5
  libkf5texteditor5-libjs-underscore libkf5textwidgets-data libkf5textwidgets5 libkf5threadweaver5 libkf5wallet-bin libkf5wallet-data libkf5wallet5 libkf5waylandclient5
  libkf5waylandserver5 libkf5widgetsaddons-data libkf5widgetsaddons5 libkf5windowsystem-data libkf5windowsystem5 libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5
  libkf5xmlrpcclient-data libkf5xmlrpcclient5 libkfontinst5 libkfontinstui5 libkscreenlocker5 libksgrd7 libksignalplotter7 libkwalletbackend5-5 libkwin4-effect-builtins1
  libkwineffects11 libkwinglutils11 libkwinxrenderutils11 libkworkspace5-5 liblivemedia62 liblmdb0 libmatroska6v5 libmicrodns0 libmpcdec6 libnfs11 libopenmpt-modplug1
  liboxygenstyle5-5 liboxygenstyleconfig5-5 libpackagekitqt5-1 libpam-kwallet-common libpam-kwallet5 libphonon4qt5-4 libplacebo4 libplasma-geolocation-interface5
  libpolkit-qt5-1-1 libpoppler-qt5-1 libpowerdevilcore2 libpowerdevilui5 libprocesscore7 libprocessui7 libprotobuf-lite10 libproxy-tools libqalculate6 libqalculate6-data
  libqapt3 libqapt3-runtime libqrencode3 libqt4-svg libqt5multimediaquick-p5 libqt5quickcontrols2-5 libqt5quicktemplates2-5 libqt5texttospeech5 libqt5waylandclient5
  libqt5waylandcompositor5 libresid-builder0c2a libscim8v5 libsdl-image1.2 libsidplay2 libtaskmanager6 libupnp6 libusageenvironment3 libva-wayland2 libvlc-bin libvlc5
  libvlccore9 libvoikko1 libweather-ion7 libxcb-composite0 libxcb-cursor0 libxcb-damage0 libxcb-dpms0 libxcb-record0 libxml2-utils libzip4 milou oxygen-sounds phonon4qt5
  phonon4qt5-backend-vlc plasma-desktop plasma-desktop-data plasma-discover plasma-discover-common plasma-framework plasma-integration
  plasma-look-and-feel-org-kde-breezedark-desktop plasma-pa plasma-workspace polkit-kde-agent-1 powerdevil powerdevil-data pulseaudio-module-gconf python3-dbus.mainloop.pyqt5
  python3-icu python3-pam python3-pyqt5.qtsvg python3-xapian qapt-batch qdbus-qt5 qml-module-org-kde-activities qml-module-org-kde-bluezqt qml-module-org-kde-draganddrop
  qml-module-org-kde-extensionplugin qml-module-org-kde-kcm qml-module-org-kde-kconfig qml-module-org-kde-kcoreaddons qml-module-org-kde-kholidays qml-module-org-kde-kio
  qml-module-org-kde-kirigami2 qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-org-kde-kwindowsystem qml-module-org-kde-newstuff
  qml-module-org-kde-qqc2desktopstyle qml-module-org-kde-runnermodel qml-module-org-kde-solid qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings
  qml-module-qtgraphicaleffects qml-module-qtmultimedia qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls-styles-breeze
  qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-privatewidgets qml-module-qtquick-templates2
  qml-module-qtquick-virtualkeyboard qml-module-qtquick-window2 qml-module-qtquick2 qtvirtualkeyboard-plugin qtwayland5 rdate sgml-data sni-qt socat software-properties-kde
  sonnet-plugins systemsettings ubiquity ubiquity-casper ubiquity-frontend-kde ubiquity-ubuntu-artwork ubuntu-release-upgrader-qt user-manager vlc-data vlc-plugin-base
  vlc-plugin-video-output
0 upgraded, 379 newly installed, 55 to remove and 3 not upgraded.

答案1

这是一个依赖链:

  • emacsen-common是依赖dictionaries-common
  • dictionaries-common是依赖aspell
  • aspell间接依赖libwebkit2gtk
  • 很多事情都取决于libwebkit2gtk

emacsen-common是其一部分Ubuntu 的默认安装,因此它不是你在 2020 年 Emacs 大清洗中必须删除的东西。(它的版本号与 Emacs 版本无关。)

相关内容