![如何删除 Debian 中与 gui 相关的所有软件包?](https://linux22.com/image/127972/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%20Debian%20%E4%B8%AD%E4%B8%8E%20gui%20%E7%9B%B8%E5%85%B3%E7%9A%84%E6%89%80%E6%9C%89%E8%BD%AF%E4%BB%B6%E5%8C%85%EF%BC%9F.png)
我在 Android 上的 chroot 环境中使用 Debian。由于我根本不使用GUI,我认为最好卸载与GUI相关的软件包以释放空间。
- 我该如何删除所有 GUI 软件包?
- 如果删除软件包后出现任何问题,如何重新安装所有已删除的软件包?(可选)
作为对 @Arpit Agarwal 评论的回应,这里有一个 Android 上的 debian 安装过程的链接。 termux 上的 debian
输出
apt purge libx11-6 libwayland-client0
:
Reading package lists...
Building dependency tree...
Reading state information...
Package 'libwayland-client0' is not installed, so not removed
The following packages were automatically installed and are no longer required:
aglfn fontconfig fontconfig-config fonts-dejavu-core fonts-droid-fallback
fonts-liberation fonts-noto-mono ghostscript gnuplot-data gsfonts
hicolor-icon-theme imagemagick-6-common info java-common krb5-locales
libaec0 libamd2 libarpack2 libasound2 libasound2-data libauthen-sasl-perl
libavahi-client3 libavahi-common-data libavahi-common3 libblas-common
libblas3 libcamd2 libccolamd2 libcholmod3 libcolamd2 libcups2
libcupsfilters1 libcupsimage2 libcurl3-gnutls libcxsparse3 libdatrie1
libdjvulibre-text libdjvulibre21 libdrm-amdgpu1 libdrm-freedreno1
libdrm-nouveau2 libdrm-radeon1 libdrm2 libedit2 libencode-locale-perl
libfftw3-double3 libfftw3-single3 libfile-listing-perl libflac8
libfont-afm-perl libfontconfig1 libfreetype6 libgdk-pixbuf2.0-common
libgfortran3 libgl1-mesa-dri libglapi-mesa libglib2.0-0 libglib2.0-data
libglpk40 libgraphite2-3 libgs9 libgs9-common libgssapi-krb5-2 libharfbuzz0b
libhdf5-100 libhtml-form-perl libhtml-format-perl libhtml-parser-perl
libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl
libhttp-daemon-perl libhttp-date-perl libhttp-message-perl
libhttp-negotiate-perl libice6 libijs-0.35 libilmbase12 libio-html-perl
libio-socket-ssl-perl libjack-jackd2-0 libjbig0 libjbig2dec0 libjpeg62-turbo
libjxr-tools libjxr0 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0
liblapack3 liblcms2-2 libldap-2.4-2 libldap-common libllvm3.9 liblqr-1-0
libltdl7 liblua5.1-0 liblwp-mediatypes-perl liblwp-protocol-https-perl
libmailtools-perl libmetis5 libmng1 libnet-http-perl libnet-smtp-ssl-perl
libnet-ssleay-perl libnetpbm10 libnghttp2-14 libnspr4 libnss3 libogg0
libopenblas-base libopenexr22 libopenjp2-7 libopus0 libosmesa6
libpango-1.0-0 libpangoft2-1.0-0 libpaper-utils libpaper1 libpcsclite1
libpixman-1-0 libpng16-16 libportaudio2 libqhull7 libqrupdate1
libqscintilla2-l10n libqt4-dbus libqt4-network libqt4-xml libqtcore4
libqtdbus4 librtmp1 libsamplerate0 libsasl2-2 libsasl2-modules
libsasl2-modules-db libsensors4 libsm6 libsndfile1 libssh2-1
libsuitesparseconfig4 libsz2 libtext-unidecode-perl libthai-data libthai0
libtiff5 libtimedate-perl libtxc-dxtn-s2tc libumfpack5 liburi-perl
libvorbis0a libvorbisenc2 libwebp6 libwww-perl libwww-robotrules-perl
libx11-data libx11-xcb1 libxau6 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0
libxcb-present0 libxcb-render0 libxcb-shm0 libxcb-sync1 libxcb1 libxdmcp6
libxml-libxml-perl libxml-namespacesupport-perl libxml-parser-perl
libxml-sax-base-perl libxml-sax-expat-perl libxml-sax-perl libxshmfence1
libzip4 netpbm octave-common octave-info perl-openssl-defaults poppler-data
psutils qdbus qtchooser qtcore4-l10n shared-mime-info tex-common texinfo ucf
x11-common xdg-user-dirs
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
ca-certificates-java* default-jre-headless* gnuplot-nox* groff* imagemagick*
imagemagick-6.q16* libaudio2* libcairo2* libfltk-gl1.3* libfltk1.3* libgd3*
libgdk-pixbuf2.0-0* libgl1-mesa-glx* libgl2ps1* libglu1-mesa*
libgraphicsmagick++-q16-12* libgraphicsmagick-q16-3* libmagick++-6.q16-7*
libmagickcore-6.q16-3* libmagickcore-6.q16-3-extra* libmagickwand-6.q16-3*
liboctave3v5* libpangocairo-1.0-0* libplot2c2* libpstoedit0c2a*
libqscintilla2-12v5* libqt4-opengl* libqtgui4* libwmf0.2-7* libx11-6*
libxaw7* libxcursor1* libxdamage1* libxext6* libxfixes3* libxft2* libxi6*
libxinerama1* libxmu6* libxpm4* libxrender1* libxt6* libxtst6* libxxf86vm1*
octave* openjdk-8-jre-headless* pstoedit* qt-at-spi*
需要一些关于可以安全删除哪些软件包而不影响 Octave 的建议。否则,如果无法给出某些具体答案,则可以关闭此问题。
答案1
在 Debian 上,要删除所有 GUI 软件包,您可以删除用于连接显示服务器的两个库:
apt purge libx11-6 libwayland-client0
这将删除依赖于这些库的所有包。删除操作将记录在历史记录中/var/log/apt
,因此如果您需要恢复删除操作,可以在那里查看。
这可能捕获一些包含 CLI 和 GUI 工具的软件包,尽管在大多数(如果不是全部)情况下,这些工具是单独打包的(以便可以拥有一个功能性纯文本系统)。
答案2
Linux 中的 GUI 有两部分:服务器和客户端。 @stephen-kitt 的回答只提到了后者。
为了删除服务器部分,请使用
apt-get purge x11-common libwayland-server0
答案3
其他人已经给出了一些关于应该保留的包裹的提示。所以我主要关注 GUI 包。
以下是删除已安装的 GUI 软件包的一些想法。除非您确实确定,否则不要在生产系统上执行此操作。我建议在一个屏幕会话,您可以在其中向上滚动并保存已删除包的列表。
apt-get purge 'libx11*' x11-common
# "The following packages have unmet dependencies:" ...
# Add the listed packages to your commmand, e.g.:
apt-get purge libx11*' x11-common libxt6 xul-ext-mozvoikko
# Or remove everything that has "x11" in the name:
apt-get purge '*X11*'
似乎有不少不依赖于 x11-common 删除“gnome”依赖项:
apt-get purge $(apt-cache depends gnome | grep Depends | awk '{print $2}')
“task-desktop”元包应包含默认安装的大部分桌面包。所以删除它:
apt-get purge task-desktop
当你完成后,不要忘记:
apt autoremove
同样,这可能会删除您想要保留的一两个软件包,因此请浏览列表并记下您想要重新安装的那些软件包。另外,考虑一下正在运行的程序:如果像 lightdm 这样的登录管理器正在运行,您需要终止其进程。如果网络服务正在管理您的/etc/resolv.conf
,您可能无法解析域名(apt-get update
不再工作),直到您将名称服务器添加到该文件等。