注意:最初发布的问题询问 Ubuntu他们善意地指出这个 StackExchange 更适合非官方的 Ubuntu 衍生品。
背景信息。
当前运行 POP_OS 20.04
mousepad
当操作系统版本为 18.10 时安装文本编辑器,并在升级到后续操作系统版本的过程中将其用作默认文本编辑器。我现在正在运行 Pop_OS 20.04 LTS,发现它gedit
对于基本文本编辑来说效果很好。现在准备删除mousepad
(如果安全且可能的话,还可以删除任何不必要的依赖项)。
已设置gedit
为默认文本编辑器。
第一次尝试通过 POP Shop 卸载mousepad
0.4.2(deb 版本)会出现以下错误,
卸载“鼠标垫”失败
This may have been caused by external or manually compiled software.
The following packages have unmet dependencies:
gir1.2-gtksource-3.0: Depends: libgtksourceview-3.0-1 (>= 3.23.90) but it is not going to be installed
使用命令行查看删除鼠标垫(仅)给出以下信息,
sudo apt remove mousepad
0 已升级,0 是新安装,1 是删除,0 是未升级。
执行此操作后,将释放 1,612 kB 磁盘空间。 (暂时中止)
然后查看mousepad
使用命令的删除和依赖项,
username@computer:~$ sudo apt autoremove mousepad
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
diffstat engrampa engrampa-common exfalso fonts-font-awesome fonts-lato
fuseiso gir1.2-gst-plugins-base-1.0 gir1.2-gtksource-3.0
gir1.2-javascriptcoregtk-4.0 gir1.2-keybinder-3.0 gir1.2-webkit2-4.0
gnome-shell-extension-pop-battery-icon-fix gnustep-base-common
gnustep-base-runtime gnustep-common i965-va-driver:i386 icoutils
intel-media-va-driver:i386 javascript-common libaom0:i386 libappindicator1
libappstreamqt2 libapt-pkg-perl libaribb24-0:i386 libasn1-8-heimdal:i386
libasound2:i386 libasound2-plugins:i386 libasync-mergepoint-perl
libasyncns0:i386 libavahi-client3:i386 libavahi-common-data:i386
libavahi-common3:i386 libavcodec-extra58:i386 libavutil56:i386
libb-hooks-endofscope-perl libb-hooks-op-check-perl libbrotli1:i386
libcaja-extension1 libcapi20-3 libcapi20-3:i386 libcapture-tiny-perl
libclass-method-modifiers-perl libclass-xsaccessor-perl libclone-perl
libcodec2-0.9:i386 libcpanel-json-xs-perl libcups2:i386 libcurl3-gnutls:i386
libdatrie1:i386 libdbus-1-3:i386 libdbusmenu-gtk4 libdevel-callchecker-perl
libdevel-size-perl libdigest-bubblebabble-perl libdrm-amdgpu1:i386
libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386
libdynaloader-functions-perl libelf1:i386 libemail-valid-perl libexif12:i386
libexporter-tiny-perl libfaudio0 libfaudio0:i386 libfile-find-rule-perl
libflac8:i386 libfm-data libfm-extra4 libfm-gtk-data libfm-gtk4
libfm-modules libfm4 libfont-ttf-perl libfox-1.6-0 libfribidi0:i386
libfuture-perl libgc1c2 libgd3:i386 libgdbm-compat4:i386 libgdbm6:i386
libgdk-pixbuf2.0-0:i386 libgl1:i386 libgl1-mesa-dri:i386
libgl1-mesa-glx:i386 libglapi-mesa:i386 libglu1-mesa:i386 libglvnd0:i386
libglx-mesa0:i386 libglx0:i386 libgmp10:i386 libgnustep-base1.26
libgnutls30:i386 libgomp1:i386 libgphoto2-6:i386 libgphoto2-port12:i386
libgraphite2-3:i386 libgsettings-qt1 libgsm1:i386 libgssapi-krb5-2:i386
libgssapi3-heimdal:i386 libgtk2-perl libgtksourceview-3.0-1
libgtksourceview-3.0-common libharfbuzz0b:i386 libhcrypto4-heimdal:i386
libheimbase1-heimdal:i386 libheimntlm0-heimdal:i386 libhogweed5:i386
libhx509-5-heimdal:i386 libicu66:i386 libieee1284-3:i386 libigdgmm11:i386
libimport-into-perl libio-async-loop-epoll-perl libio-async-perl
libio-pty-perl libio-string-perl libipc-run-perl libjack-jackd2-0:i386
libjbig0:i386 libjpeg-turbo8:i386 libjpeg8:i386 libjs-jquery libjs-modernizr
libjs-sphinxdoc libjs-underscore libjson-maybexs-perl libk5crypto3:i386
libkeybinder-3.0-0 libkeyutils1:i386 libkf5itemmodels5
libkrb5-26-heimdal:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms2-2:i386
libldap-2.4-2:i386 liblinux-epoll-perl liblist-compare-perl
liblist-moreutils-perl libltdl7:i386 libmarkdown2 libmenu-cache-bin
libmenu-cache3 libmodule-implementation-perl libmodule-runtime-perl
libmoo-perl libmoox-aliases-perl libmp3lame0:i386 libmpg123-0:i386
libmysqlclient21:i386 libnamespace-clean-perl libnet-dns-perl
libnet-dns-sec-perl libnet-domain-tld-perl libnet-ip-perl libnettle7:i386
libnghttp2-14:i386 libnotify-bin libnuma1:i386 libnumber-compare-perl
libobjc4 libodbc1:i386 libopenal1:i386 libopenjp2-7:i386 libosmesa6
libosmesa6:i386 libp11-kit0:i386 libpackage-stash-perl
libpackage-stash-xs-perl libpackagekitqt5-1 libpango-1.0-0:i386
libpango-perl libpangocairo-1.0-0:i386 libpangoft2-1.0-0:i386
libparams-classify-perl libpath-tiny-perl libpcap0.8:i386 libpci3:i386
libpciaccess0:i386 libpeony2 libperl5.30:i386 libperlio-gzip-perl
libpsl5:i386 libpulse0:i386 libqhttpengine0 libreadonly-perl
libref-util-perl libref-util-xs-perl libroken18-heimdal:i386
librole-tiny-perl librsvg2-2:i386 librsvg2-common:i386 librtmp1:i386
libsamplerate0:i386 libsane:i386 libsasl2-2:i386 libsasl2-modules:i386
libsasl2-modules-db:i386 libsdl2-2.0-0:i386 libsensors5:i386
libsereal-decoder-perl libsereal-encoder-perl libsereal-perl libshine3:i386
libsnapd-qt1 libsnappy1v5:i386 libsndfile1:i386 libsndio7.0:i386
libsnmp35:i386 libsoxr0:i386 libspeex1:i386 libsqlite3-0:i386 libssh-4:i386
libssl1.1:i386 libstb0 libstb0:i386 libstrictures-perl libstruct-dumb-perl
libsub-exporter-progressive-perl libsub-identify-perl libsub-quote-perl
libswresample3:i386 libsystemd0:i386 libtasn1-6:i386 libtest-fatal-perl
libtest-refcount-perl libtext-glob-perl libtext-levenshtein-perl
libthai0:i386 libtiff5:i386 libtwolame0:i386 libtype-tiny-perl
libtype-tiny-xs-perl libudev1:i386 libunicode-utf8-perl libusb-1.0-0:i386
libv4l-0:i386 libv4lconvert0:i386 libva-drm2:i386 libva-x11-2:i386
libva2:i386 libvariable-magic-perl libvdpau1:i386 libvkd3d1 libvkd3d1:i386
libvo-amrwbenc0:i386 libvpx6:i386 libvulkan1:i386 libwavpack1:i386
libwayland-client0:i386 libwayland-cursor0:i386 libwayland-egl1:i386
libwebp6:i386 libwebpmux3:i386 libwind0-heimdal:i386 libwrap0:i386
libx11-xcb1:i386 libx265-179:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386
libxcb-glx0:i386 libxcb-present0:i386 libxcb-randr0:i386 libxcb-sync1:i386
libxcb-xfixes0:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386
libxfce4util-bin libxfce4util-common libxfce4util7 libxfconf-0-3
libxfixes3:i386 libxi6:i386 libxinerama1:i386 libxkbcommon0:i386
libxml-writer-perl libxml2:i386 libxpm4:i386 libxrandr2:i386
libxshmfence1:i386 libxslt1.1:i386 libxss1:i386 libxvidcore4:i386
libxxf86vm1:i386 libyaml-libyaml-perl libzvbi0:i386 lintian lxmenu-data
mate-desktop-common mate-terminal-common mesa-va-drivers:i386
mesa-vdpau-drivers:i386 mesa-vulkan-drivers:i386 mousepad
ocl-icd-libopencl1:i386 p7zip p7zip-full parchives patchutils
python3-dbus.mainloop.pyqt5 python3-feedparser python3-musicbrainzngs
python3-mutagen python3-pyflatpak python3-pyinotify
qml-module-org-kde-kcoreaddons qml-module-org-kde-kquickcontrols
qml-module-org-kde-qqc2desktopstyle qml-module-qtquick-controls
qml-module-qtquick-dialogs qml-module-qtquick-layouts
qml-module-qtquick-privatewidgets qt5-gtk2-platformtheme
sphinx-rtd-theme-common t1utils unar va-driver-all:i386
vdpau-driver-all:i386 xarchiver xfconf
0 upgraded, 0 newly installed, 324 to remove and 0 not upgraded.
After this operation, 787 MB disk space will be freed.
Do you want to continue? [Y/n] (aborted for now)
我可能可以只删除mousepad
(1,612 kB),但肯定希望删除价值 787 MB 的 324 个显然不再需要的依赖项。然而,考虑到返回的信息量没有足够的知识和经验来告诉终端“是” - 请删除这些。
问题:删除这些依赖项真的基本上是安全的,不会导致灾难性问题吗?如果没有的话,我很想知道这里发生了什么......
到目前为止,我们已经了解 autoremove 命令只会删除不再需要的依赖项(可以安全卸载),但这种假设可能不正确。
答案1
sudo apt autoremove
不会破坏任何东西或删除其他包所需的依赖项。
使用鼠标垫的额外参数运行它,
sudo apt autoremove mousepad
只会将鼠标垫及其独特的依赖项添加到要删除的孤儿列表中。