如何在Linux中查找和删除未使用的软件包

时间:2020-03-21 11:44:22  来源:igfitidea点击:

每当我们安装应用程序时,还将与我们安装的应用程序一起安装一些其他软件包(依赖项)。
即使在删除应用程序后,硬盘驱动器中可能存在这些依赖项。
在特定的时间段之后,硬盘驱动器将被淹没或者孤立的软件包淹没,并且我们可能最终有低磁盘空间。
低磁盘空间不仅影响系统性能,它也不会让我们因空间不足而安装新应用程序。
因此,建议以定期擦除孤立包。
此简短教程将解释如何在Linux发行版(如CentOS和Ubuntu)中查找和删除未使用的软件包。

首先,我们将看到如何在Ubuntu及其衍生工具例如Linux Mint,Mexhileary OS中查找和删除未使用的软件包。

使用deborphan查找和删除Ubuntu中的未使用的包

DEBORPHAN是一个命令行实用程序,可用于在基于DEB系统中查找和删除未使用的未使用或者孤立软件包。
它可以在官方存储库中提供。
要安装它,请打开终端并运行以下命令:

$sudo apt-get install deborphan

安装后,如下所示运行它以找出孤立包。

$deborphan

这将列出所有未使用的软件包。

openoffice.org-hyphenation
rhythmbox-plugin-magnatune
myspell-en-gb
libgnutls-openssl27
myspell-en-za
libusb-0.1-4
libreadline6

如上所述,我的Ubuntu系统中有很少的未使用软件包。

要删除孤立包,请运行:

$sudo orphaner

选择文件并选择"确定"以删除所有。

使用gtkorphan查找和删除Ubuntu中的未使用的软件包

GTKORPHAN是一个图形工具,允许我们查找和删除孤儿包。
Gtkorphan仅适用于桌面版本。
如果我们使用的没有GUI的Ubuntu服务器,请使用deborphan。

gtkorphan可在默认存储库中使用。
要安装它,请运行:

$sudo apt-get install gtkorphan

安装后,通过从终端运行以下命令启动它:

$sudo gtkorphan

Gtkorphan的默认接口将如下所示。

由于我们已经删除了孤立包,因此它没有显示。
但是,在第一次,我们需要初始化系统才能跟踪所需的包,即使它们被列为孤立。

为此,从主窗口中,展开"选项"部分并选中"显示所有孤立包,不仅是libs部分"的框。

现在,Gtkorphan将列出孤立包。
但是,你必须在这里小心。
正如我们在上图所见,Gtkorphan列出了一些重要的包装未使用。
我们不应该删除它们。
要保留重要的包,请右键单击"包"名称,然后单击"Hibernate包"选项。

这将使软件包通过GTKORPH删除。
你只需要第一次这样做。
之后,如果存在,我们可以删除孤立包。

关闭所有重要的包后,通过其他包的列表向下滚动。
如果我们不需要任何包,请右键单击它,然后单击"选择删除"选项。

或者,运行以下命令一次删除未使用/孤立的软件包。

$sudo apt-get autoclean && sudo apt-get autoremove

恭喜!现在,我们已经在硬盘驱动器中释放了一些空间。

使用RPMORPHAN查找并删除CentOS中未使用的软件包

RPMORPHAN是一个命令行实用程序,可用于在基于RPM的系统(如RHEL,CentOS,Fedora,科学Linux,SUSE等)中找到孤立包。

RPMORPHAN由以下有用的工具组成:

  • RPMusage:显示RPM包上次使用日期。
  • RPMDEP:显示已安装的RPM包的完整依赖性。
  • RPMDuplicates:查找安装了多个版本的程序。
  • RPMExtra:查找未分发的已安装包。

在安装RPMORPHAN之前,请确保已安装PERL和PERL-TK软件包。
要安装这些包,请运行以下命令作为root用户:

# yum install perl perl-Tk

然后,从以下链接下载RPMORPHAN包。
首先,最新版本为1.16.

  • 下载rpmorphan.

下载后,使用命令安装rpmorphan:

# rpm -Uvh rpmorphan-1.16-1.noarch.rpm

安装RPMORPHAN后,运行它以查找孤立的库:

# rpmorphan

示例输出:

libsysfs

也可以显示特定时段的孤立包。

例如,要显示在过去2天内安装的所有孤立包,请运行:

# rpmorphan --all -install-time -2

示例输出:

rpmorphan
wget

显示所有孤立包,安装10天前(或者更多):

# rpmorphan --all -install-time +5

示例输出:

NetworkManager-adsl
NetworkManager-bluetooth
NetworkManager-glib
NetworkManager-team
NetworkManager-tui
NetworkManager-wifi
aic94xx-firmware
audit
authconfig
avahi
biosdevname
btrfs-progs
dnf-plugins-core
dracut-config-rescue
e2fsprogs
epel-release
firewalld
gpg-pubkey
grub2
iprutils
irqbalance
ivtv-firmware
iwl100-firmware
iwl1000-firmware
iwl105-firmware
iwl135-firmware
iwl2000-firmware
iwl2030-firmware
iwl3160-firmware
iwl3945-firmware
iwl4965-firmware
iwl5000-firmware
iwl5150-firmware
iwl6000-firmware
iwl6000g2a-firmware
iwl6000g2b-firmware
iwl6050-firmware
iwl7260-firmware
kbd
kernel
kernel-tools
kexec-tools
libsysfs
lvm2
man-db
microcode_ctl
openssh-clients
openssh-server
parted
passwd
postfix
python-setuptools
rootfiles
rsyslog
selinux-policy-targeted
sudo
tar
tuned
xfsprogs

自10天或者更长时间以来显示所有未使用的软件包:

# rpmorphan --all --access-time 10

示例输出:

NetworkManager-glib
NetworkManager-tui
aic94xx-firmware
btrfs-progs
dracut-config-rescue
e2fsprogs
gpg-pubkey
grub2
ivtv-firmware
iwl100-firmware
iwl1000-firmware
iwl105-firmware
iwl135-firmware
iwl2000-firmware
iwl2030-firmware
iwl3160-firmware
iwl3945-firmware
iwl4965-firmware
iwl5000-firmware
iwl5150-firmware
iwl6000-firmware
iwl6000g2a-firmware
iwl6000g2b-firmware
iwl6050-firmware
iwl7260-firmware
libsysfs
man-db
microcode_ctl
openssh-clients
parted
passwd
python-setuptools
sudo
tar

有关详细信息,请参阅man页面。

# man rpmorphan

如果我们不再需要那些孤立包,请使用yum命令删除它们并释放硬盘。