红联Linux门户
Linux帮助

Ubuntu系统较全面清理

发布时间:2014-08-10 22:16:20来源:linux网站作者:Jelline

摘要:本文较为系统地介绍了Ubuntu系统清理,包括删除残余的配置文件、清理下载的缓存包、清理不再需要的包、清理无用的语言文件等,并详细介绍了删除旧的内核映像。

随着运行,Ubuntu系统越来越大,有时甚至提示”磁盘空间不足“,本文较为系统介绍Ubuntu系统清理。


一、基本清理

1.1 删除残余的配置文件

一般而言,当我们从 Ubuntu 系统中删除了一个软件之后,该软件的残余配置文件并没有被删除。如果你确信以后不再使用该软件,那么保留其配置文件实在没有必要,所以我们大可一并删除之。具体操作如下:

sudo synaptic打开新立得软件包管理器,点击左侧Status——>Not installed(residual config)——>Ctrl+A全选右侧的包——>右击选Mark for Complete Removal——>点工具栏的Apply按钮。


1.2 清理下载的缓存包

用 sudo apt-get install 安装软件时,其下载的包都缓存在 /var/cache/apt/archives/ 目录中。如果要清理掉这些已下载的缓存包,那么可以执行命令: sudo apt-get autoclean;sudo apt-get clean


1.3 清理不再需要的包

在 Ubuntu 系统中安装软件时,该软件的依赖通常也会自动安装上。那么,在删除该软件后,其依赖可能需要我们手动删除之。可以运行 sudo apt-get autoremove 命令来解决这个问题。


1.4 清理无用的语言文件

Ubuntu 是一个支持多语言界面的系统,使用localepurge工具可以在保留需要的区域配置的前提之下删除其他那些系统中存在的无用的区域配置文件,这样自然的就会为你腾出不少磁盘空间。

用命令sudo apt-get install localepurge安装该工具,安装过程中会提示配置,空格键选择要保留的区域配置,可以只选择en,和cn*开头的(cn_SG等是指新加坡,可以不选)。当以后在安装程序时,此工具也会自动执行,勿需再次配置。

装完之后,在命令行执行localepurge进行清理。另,可以通过vim /etc/locale.nopurge查看 localepurge 的配置文件。


1.5 清理无用的翻译内容

可以使用 trans-purge 这组小工具来清理 *.desktop、mime-database、gconf schema 中的无用翻译内容。我觉得挺麻烦的,没试过。


1.6 清理孤立的库文件

通过命令sudo deborphan | xargs sudo apt-get -y remove --purge清理孤立的库文件。也可以用gtkorpha图形界面工具进行清理。


1.7 建立新立得过滤器

设置升级时,不升级孤立的包:System——>Administration——>Synaptic Package Manager——>菜单栏Settings——>Filters——>点击左侧Upgradable(upstream),对应右侧将Orphaned勾上。


1.8 清理浏览器缓存

Firefox:rm .mozilla/firefox/*.default/Cache

Chrome:直接在谷歌浏览器窗口清理,点击浏览器工具栏上的扳手图标  ——>选项——>高级选项——>清除浏览数据。


二、删除多余的映像

Ubuntu Linux内核升级频繁,如果不删除旧的内核,将会占用大量磁盘空间,而且开机启动有诸多选项(这点,可以通过vim /boot/grub/menu.lst手工修改,即删除多余启动项)。这些操作成为释放空间的主要来源,删除一个内核映射约可以释放100M空间。


2.1 删除多余内核映像
(1) 查看已安装内核映像
 通过命令sudo dpkg --get-selections  | grep linux-image查看已安装内核映像:
# linux-image-2.6.32-25-generic install /*linux-xx.xx.xx-xx(-generic)是升级的内核版本,可以删除*/
# linux-image-2.6.32-26-generic install
# linux-image-2.6.32-27-generic install
# linux-image-2.6.32-31-generic install
# linux-image-generic          install /*Linux发布版完整内核映像,不可删除*/


(2) 查看当前内核版本
通过命令uname -r查看当前内核版本,
jelline@jelline:~$ uname -r

2.6.32-31-generic


(3) 删除多余内核映像
通过命令sudo apt-get purge linux-image-2.6.32-26-generic删除旧的内核映像(只须保留linux-image-generic即可,和当前内核版本即可)。选择Y,而后会弹出对启动项如何操作的选择框,可以选择保留也可以选择自动更新。
解压缩后将会空出 99.3MB 的空间。

您希望继续执行吗?[Y/n]Y


3.2 删除旧的编译库
(1) 查看已有的编译库
通过命令sudo dpkg --get-selections  | grep linux-headers查看已有的内核C编译库,即头文件库:

linux-headers-2.6.28-19                    install /*内核C编译库,即头文件库*/
linux-headers-2.6.28-19-generic            install
linux-headers-2.6.32-24                    install
linux-headers-2.6.32-24-generic            install
linux-headers-2.6.32-25                    install
linux-headers-2.6.32-25-generic            install
linux-headers-2.6.32-26                    install
linux-headers-2.6.32-26-generic            install
linux-headers-2.6.32-27                    install
linux-headers-2.6.32-27-generic            install
linux-headers-2.6.32-30                    install
linux-headers-2.6.32-30-generic            install
linux-headers-2.6.32-31                    install
linux-headers-2.6.32-31-generic            install
linux-headers-generic                      install /*Linux发布版的C编译库,不可删除*/


(2) 删除旧的编译库
通过命令sudo apt-get purge linux-headers-2.6.28-19删除旧的编译库。编译库与内核版本一一样对应,只须保留与当前内核版本相对应的编译库,如此例的linux-headers-2.6.32-31-generic,其他的皆可删除。执行过程中会提示“下列软件包是自动安装的并且现在不需要了“,用命令apt-get autoremove删除之。


3.3 最后查看下
通过上述步骤后,所有旧的内核映像和组件都删除了,通过命令dpkg --get-selections  | grep linux查看:
libselinux1                              install
linux-firmware                          install/*防火墙组件*/
linux-generic                            install/*Linux发布版的完整内核*/
linux-image-2.6.32-31-generic            install/*内核映像*/
linux-image-generic                      install/*Linux发布版完整内核映像*/
linux-libc-dev                          install/*Linux内核API的C开发库*/
linux-sound-base                        install/*Linux声音管理工具*/
pptp-linux                              install
syslinux                                install
util-linux                              install

我纳闷了,用命令apt-get purge linux-headers-2.6.2*,居然把linux-headers*全部删除了:-( 我只能用sudo apt-get install将误删的东西补上。


最后,具有挑战性工作是,如何将上述的清理写成一个批处理文件,以实现一键清理。