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