今天,我们将了解一个鲜为人知但有用的实用程序,适用于 Debian 及其衍生产品,如 Ubuntu 和 Linux Mint 等 Ubuntu 变体。 打招呼 “德布福斯特” – 一个命令行实用程序,仅保留基本软件包并删除不再需要的其他软件包。 因此,您可以始终保持清洁和最小化系统。 debfoster 应用程序是 apt 和 dpkg 包管理器的包装程序。 它维护了一个已安装包的列表,这些包是明确请求的,而不是作为依赖项安装的。
当你第一次运行它时,它会创建一个已安装包的列表并将它保存在一个名为 饲养员 在 /var/lib/debfoster/ 目录。 Debfoster 将使用此列表来检测仅因为其他软件包依赖于它们而安装的软件包。 如果这些依赖项之一发生更改,debfoster 会注意到并询问您是否要删除旧包。 通过这种方式,它可以帮助您使用您选择的基本软件包来维护一个干净的系统。
使用 Debfoster 在 Debian 和 Ubuntu 中只保留基本软件包
Debfoster 在默认存储库中可用。 因此,安装不会有什么大不了的。 运行以下命令在任何基于 Debian 的系统上安装 Debfoster:
$ sudo apt install debfoster
安装后,我们需要通过运行以下命令来创建已安装包的列表:
$ sudo debfoster -q
上面的命令会将当前安装的包添加到 饲养员 文件在 /var/lib/debfoster/ 目录。 您可以编辑此文件以删除您不再希望安装在系统中的软件包。
这是我的守护者文件的内容。
$ cat /var/lib/debfoster/keepers
您不应从该文件中删除系统相关的重要软件包,例如 Linux 内核、grub、Ubuntu-base、Ubuntu-desktop 等。另外,请备份您手动编辑的重要配置文件。
现在,强制 debfoster 实用程序删除未在keepers 文件中列出的包。 为此,请运行:
$ sudo debfoster -f
Debfoster 将删除所有在 Keepers 文件中不可用的包及其依赖项。
它还会安装任何似乎丢失的软件包,从而强制您的系统遵守 debfoster 数据库。
然后,您可以在每次添加/删除包后不时运行以下命令,以检查是否有任何孤立包或不需要的依赖项需要删除。
$ sudo debfoster
如果您已安装/删除任何软件包,您将看到如下所示的输出。 正如您在输出中看到的,Screen 包未列在我的守护者列表中。 因为,我是在创建管理员列表后安装它的。 所以,debfoster 问我是否要保留这个。 如果您不确定该怎么做,请输入 H 显示帮助部分。
Keep screen? [Ynpsiuqx?], [H]elp: H Yes Keep screen. [default] No Delete screen. Prune Delete screen and the packages it is keeping installed. Skip Skip this question. Help Print this message. Info or ? Show information about screen. Undo Undo last response. Quit Exit without removing packages. Exit Remove unwanted packages and exit. Keep screen? [Ynpsiuqx?], [H]elp:
Debfoster 将显示所有可能的选项。 类型 是 如果您不想删除软件包。 screen 包现在将被添加到 Keepers 文件中,并且 Debfoster 不会在以后的事务中将其删除,除非您使用“apt-get remove screen”命令手动删除它。 类型 ñ 删除屏幕包。 类型 磷 删除屏幕及其保持安装的软件包。 类型 信息 或者 ? 显示包的详细信息。 问 退出而不删除包。 并且,键入 乙 删除包并退出。
查看 Keepers 列表中的包
要查看 debfoster 数据库中的软件包列表,请运行:
$ debfoster -a
这是我的 Ubuntu 16.04 LTS 桌面中的软件包列表。
The following packages are on the keeper list: account-plugin-aim brasero debfoster deja-dup-backend-gvfs dialog firefox-locale-en gdebi gir1.2-webkit-3.0 git hyphen-en-us indicator-multiload language-pack-gnome-en libarchive-extract-perl libcpan-meta-perl libmodule-build-perl libmodule-pluggable-perl libpackage-constants-perl libpod-latex-perl libreoffice-help-en-us libreoffice-style-human libterm-ui-perl libtext-soundex-perl libvisual-0.4-plugins linux-generic linux-headers-4.4.0-15-generic linux-image-extra-4.4.0-15-generic myspell-en-au myspell-en-gb myspell-en-za mythes-en-us oneconf openoffice.org-hyphenation openssh-server python-pip python3-smbc rhythmbox-plugin-cdrecorder rhythmbox-plugin-magnatune samba-common screen shutter ssh-askpass-gnome telepathy-idle thunderbird-locale-en-us ubuntu-desktop ubuntu-minimal ubuntu-sso-client-qt ubuntu-standard ubuntu-wallpapers-wily wbritish xserver-xorg-video-cirrus xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic xserver-xorg-video-openchrome xserver-xorg-video-r128 xserver-xorg-video-savage xserver-xorg-video-siliconmotion xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
使用不同的keeper文件
默认情况下,debfoster 将在 /var/lib/debfoster/keepers 文件。 但是,您可以使用指定不同的 debfoster 数据库(当然是keepers 文件) -k 像下面这样的标志。
$ debfoster -k <path-to-keeper-file>
查看孤立的包
你并不总是需要运行“sudo debfoster”命令来检查孤立的包。你可以简单地使用 -s 像下面这样标记以查看是否有任何孤立的包。
$ debfoster -s The following packages have been orphaned: tmux
正如您在上面的输出中看到的,我有一个孤立的包。 如果它是必要的包并且不想让 debfoster 删除它,我们可以通过运行以下命令将它简单地添加到 Keepers 文件中:
$ sudo debfoster
它会要求您是否保留 tmux。 如果您将 tmux 保存在 Keepers 文件中,只需键入 是.
Keep tmux? [Ynpsiuqx?], [H]elp:Y
或者,您可以手动编辑 Keepers 文件并在列表中添加 tmux。
$ sudo vi /var/lib/debfoster/keepers
在其中添加 tmux。
[...] tmux
类型 :wq 保存退出文件。 现在,运行“debfoster -s”命令时,您不会看到任何孤立的包。
请注意这里的孤立包是指在 debfoster 数据库中未提及的包。 这并不意味着该软件包完全没有必要。 为了 example, screen 和 tmux 实用程序非常有用。 因此,我们可以将它们添加到 debfoster 数据库中。
添加/删除包
由于 debfoster 是 apt-get 和 dpkg 包管理器的包装器,因此您也可以使用它来添加或删除包。
要安装软件包,请运行:
$ sudo debfoster screen
现在 debfoster 将为您运行 apt-get 并安装指定的软件包。
要删除一个包,只需在其名称后直接放置一个减号 (-),如下所示。
$ sudo debfoster screen- Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: screen* 0 upgraded, 0 newly installed, 1 to remove and 608 not upgraded. After this operation, 972 kB disk space will be freed. Do you want to continue? [Y/n]
查找依赖项
要列出一个包所依赖的所有包,请使用 -d 旗帜。
$ debfoster -d screen
并且,要列出 debfoster 数据库中依赖于给定包的所有包,请使用 -e 像下面这样的标志。
$ debfoster -e screen
有关更多详细信息,请参阅手册页。
$ man debfoster
如您所见,Debfoster 可帮助您跟踪已安装的内容并删除所有其他不需要的软件包。 再次,我警告你 – 你必须非常小心地使用这个应用程序。 不要删除重要的与系统相关的软件包,如 Ubuntu-base、grub、current Kernel 等。如果这样做,您最终可能会得到一个无法使用的系统。
建议阅读:
- 在基于 Debian 的系统上删除不必要的配置文件
- 如何在 Linux 中查找和删除未使用的软件包
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!