什么是 emacsen-common 包?

什么是 emacsen-common 包?

我试图删除 emacs 和所有相关的软件包,几乎删除了 emacsen-common。输出为apt remove emacsen-common

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  atril-common bolt cinnamon-common cjs evince-common evolution-common evolution-data-server-common
  folks-common fonts-mathjax fwupd fwupd-amd64-signed gedit-common gedit-plugins-common gir1.2-champlain-0.12
  gir1.2-cmenu-3.0 gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdata-0.0 gir1.2-gdm-1.0 gir1.2-gfbgraph-0.2
  gir1.2-ggit-1.0 gir1.2-gmenu-3.0 gir1.2-gnomebluetooth-1.0 gir1.2-graphene-1.0 gir1.2-gtkchamplain-0.12
  gir1.2-gtkclutter-1.0 gir1.2-gtksource-4 gir1.2-gucharmap-2.90 gir1.2-handy-0.0
  gir1.2-javascriptcoregtk-4.0 gir1.2-keybinder-3.0 gir1.2-malcontent-0 gir1.2-meta-muffin-0.0
  gir1.2-mutter-7 gir1.2-nemo-3.0 gir1.2-nma-1.0 gir1.2-rb-3.0 gir1.2-rest-0.7 gir1.2-rsvg-2.0
  gir1.2-timezonemap-1.0 gir1.2-upowerglib-1.0 gir1.2-zpj-0.0 gnome-control-center-data gnome-session-bin
  gnome-session-common gnome-shell-common gnome-software-common gnome-todo-common gstreamer1.0-nice
  gstreamer1.0-pipewire libamtk-5-0 libamtk-5-common libappstream-glib8 libatrildocument3 libcaja-extension1
  libcamel-1.2-62 libchamplain-0.12-0 libchamplain-gtk-0.12-0 libcjs0 libcolord-gtk1 libdee-1.0-4
  libebackend-1.2-10 libebook-1.2-20 libebook-contacts-1.2-3 libecal-2.0-1 libedata-book-1.2-26
  libedata-cal-2.0-1 libedataserver-1.2-25 libevdocument3-4 libfarstream-0.2-5 libflashrom1 libflatpak0
  libfolks25 libfreerdp2-2 libftdi1-2 libfwupd2 libfwupdplugin1 libgadu3 libgcab-1.0-0 libgdl-3-5
  libgdl-3-common libgdm1 libgit2-glib-1.0-0 libgnome-autoar-gtk-0-0 libgnome-menu-3-0 libgnome-todo
  libgpod-common libgpod4 libgspell-1-common libgucharmap-2-90-7 libhandy-0.0-0 libimage-magick-perl
  libimage-magick-q16-perl libimagequant0 libjcat1 libjs-mathjax libkpathsea6 libmagick++-6.q16-8
  libmalcontent-0-0 libmalcontent-ui-0-0 libmeanwhile1 libmuffin0 libmutter-7-0 libnss-myhostname
  libostree-1-1 libpotrace0 libpst4 libpurple-bin libpurple0 libsgutils2-2 libsmbios-c2 libsynctex2
  libtepl-5-0 libtimezonemap-data libtimezonemap1 libunity-protocol-private0 libunity-scopes-json-def-desktop
  libunity9 libvncserver1 libwinpr2-2 libwpe-1.0-1 libwpebackend-fdo-1.0-1 libxmlb1 libytnef0 libzephyr4
  malcontent malcontent-gui metacity-common muffin-common mutter-common pidgin-data python-tinycss2-common
  python3-bs4 python3-evdev python3-html5lib python3-lxml python3-magic python3-mako python3-olefile
  python3-pampy python3-pil python3-scour python3-soupsieve python3-tinycss2 python3-tz python3-webencodings
  realmd shotwell-common switcheroo-control unoconv xdg-dbus-proxy xdg-desktop-portal xdg-desktop-portal-gtk
  xwayland yelp-xsl zenity-common
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  libbotan-2-17 libtspi1 thunderbird
Suggested packages:
  fonts-lyx
Recommended packages:
  myspell-en-us | hunspell-dictionary | myspell-dictionary
The following packages will be REMOVED:
  aspell aspell-en aspell-es atril chrome-gnome-shell cinnamon cinnamon-control-center-goa cinnamon-core
  cinnamon-desktop-environment dictionaries-common emacsen-common enchant-2 evince evolution
  evolution-data-server evolution-plugin-bogofilter evolution-plugin-pstimport evolution-plugins gdm3 gedit
  gedit-plugin-bookmarks gedit-plugin-bracket-completion gedit-plugin-character-map gedit-plugin-code-comment
  gedit-plugin-color-picker gedit-plugin-color-schemer gedit-plugin-commander gedit-plugin-draw-spaces
  gedit-plugin-find-in-files gedit-plugin-git gedit-plugin-join-lines gedit-plugin-multi-edit
  gedit-plugin-session-saver gedit-plugin-smart-spaces gedit-plugin-synctex gedit-plugin-terminal
  gedit-plugin-text-size gedit-plugin-translate gedit-plugin-word-completion gedit-plugins gir1.2-evince-3.0
  gir1.2-webkit2-4.0 gnome gnome-calendar gnome-contacts gnome-control-center gnome-core gnome-documents
  gnome-getting-started-docs gnome-maps gnome-online-accounts gnome-remote-desktop gnome-session gnome-shell
  gnome-shell-extension-prefs gnome-shell-extensions gnome-software gnome-sushi gnome-todo gnome-tweaks
  gnome-user-docs gnote hunspell-en-us hyphen-en-us inkscape ispanish libatrilview3 libedataserverui-1.2-2
  libenchant-2-2 libevolution libevview3-3 libfolks-eds25 libgoa-backend-1.0-1 libgspell-1-2 libgtkspell0
  libgtkspell3-3-0 libwebkit2gtk-4.0-37 libyelp0 lightdm-webkit2-greeter lutris muffin myspell-es
  mythes-en-us pidgin rhythmbox-plugins shotwell steam-launcher task-cinnamon-desktop task-gnome-desktop
  wspanish yelp zenity
The following NEW packages will be installed:
  libbotan-2-17 libtspi1 thunderbird
0 upgraded, 3 newly installed, 92 to remove and 0 not upgraded.
Need to get 51.0 MB/52.8 MB of archives.
After this operation, 178 MB disk space will be freed.
Do you want to continue? [Y/n] 

该软件包是什么?为什么它试图删除所有其他软件包?

答案1

emacsen-common提供 Emacs 包使用的共享基础设施;特别是,它允许其他软件包提供 Emacs 软件包(在 Emacs 意义上,而不是 Debian 意义上),并使用安装的 Emacs 实现(如果有)来注册它们。

删除它会导致许多其他包被删除,因为它是这些包的依赖项,通常是间接的。大多数情况下,连接包是dictionaries-common,它为字典包提供共享基础结构,并注册一个 Emacs 包以简化 Emacs 中的字典集成。

例如,查看要删除的包列表中的第一个和最后一个包:

$ aptitude why aspell emacsen-common
i A aspell              Depends dictionaries-common (> 0.40)
i A dictionaries-common Depends emacsen-common (>= 2.0.5)

$ aptitude why zenity emacsen-common
i A zenity               Depends  libwebkit2gtk-4.0-37 (>= 2.15.1)                                                                 
i A libwebkit2gtk-4.0-37 Depends  libenchant-2-2 (>= 2.2.3)                                                                        
i A libenchant-2-2       Depends  hunspell-en-us | hunspell-dictionary | myspell-dictionary | aspell-dictionary | ispell-dictionary
i A hunspell-en-us       Depends  dictionaries-common                                                                              
i A dictionaries-common  Depends  emacsen-common (>= 2.0.5)

libenchant-2-2连接解释了许多 GNOME 软件包,包括gnome它本身(通过 shotwell)。

答案2

该命令apt show emacsen-common将其描述为

所有 emacsen 的共用设施

该软件包包含所有 (x)emacs 软件包所需的代码。需要时它会自动安装。

您显示的输出并未表明它正在删除所有这些包。也就是说,如果删除 emacsen,则不再需要所有其他软件包,因此,据推测,emacsen 是系统上安装的最后一个软件包,它依赖于其他软件包列表的某些部分。可能apt autoremove在您删除 emacsen 之前,其中一些就会被删除。

编辑:

进一步调查,似乎emacsen-common依赖于emacs-common依赖于libwebkit2gtk-4.0-37并删除 将会删除大部分 gnome。所以,不要这样做。

相关内容