0%

Linux package-cleanup的使用

package-cleanup的使用

以前对于多余的内核,都是rpm-grep-remove你懂的,这次发现了这个软件包。神呐,节省了很多时间,只需要package-cleanup –oldkernels就可以把就内核(对于版本升级而言)删除,加上–count参数就可以指定留下几个grub选项,注意最好轻易不要设定1,除非你确定刚升级好的内核是OK的,默认值是2,即会保存前一个内核。

package-cleanup : 用于清理本地安装的RPM软件包

注意:这是一个只对RPM有用的工具,Ubuntu 之类的无法使用。

Fedora系统中package-cleanup是默认安装的,而且manpage也比较好懂,这里挑出几个命令来解释一下。

命令格式:

1
package-cleanup [options] <item …>
  1. 列出与其他RPM没有依赖关系的软件包,又叫叶节点(leaf node),即,没有软件包依赖叶节点。
1
2
3
4
5
6
7
8
9
10
11
12
$ package-cleanup –leaves

libacl-devel-2.2.49-8.fc14.i686
libcap-devel-2.17-1.fc13.i686
libchamplain-gtk-0.6.1-4.fc14.i686
libcurl-devel-7.21.0-5.fc14.i686
libdbi-dbd-mysql-0.8.3-6.fc14.i686
libertas-usb8388-firmware-5.110.22.p23-4.fc13.noarch
libgail-gnome-1.20.3-1.fc14.i686
libgtop2-devel-2.28.2-1.fc14.i686
libidn-devel-1.18-1.fc14.i686
libiodbc-3.52.7-1.fc12.i686

可以看到,列出的都是一些函数库,这些库函数没有被其他程序用到。

  1. 列出当前软件仓库中不再提供支持的本地已安装的软件包。也就是说,列出的软件包将不会再升级。
1
2
3
4
5
6
7
8
9
10
$ package-cleanup –orphans

alchemist-1.0.37-8.fc12.i686
antlr-2.7.7-6.fc12.i686
kernel-2.6.34.7-61.fc13.i686
kernel-devel-2.6.34.7-61.fc13.i686
kmod-nvidia-2.6.34.7-61.fc13.i686-260.19.12-1.fc13.1.i686
schroedinger-1.0.10-1.fc13.i686
system-config-display-2.2-1.fc12.i686
xorg-x11-drv-wacom-0.10.8-2.fc13.i686
  1. 删除旧内核文件(kernel, kernel-devel)。
1
$ package-cleanup –oldkernels

前面一篇文章提到过如何手工删除旧内核文件,这条命令就可以解决了。

可以用参数 “–count ” 指定要保留的内核个数,默认是2。

可以用参数 “–keepdevel” 指定不要删除 kernel-devel 。

例如:

1
$ package-cleanup –oldkernels –count=3 –keepdevel

含义是:保留最近3个内核文件和kernel-devel文件,并删除其余的kernels。

  1. 列出有依赖问题的软件包。
1
2
3
4
5
6
$ package-cleanup –problems

Package alchemist-1.0.37-8.fc12.i686 requires python(abi) = (’0′, ’2.6′, None)
Package alchemist-1.0.37-8.fc12.i686 requires python-abi = (’0′, ’2.6′, None)
Package system-config-display-2.2-1.fc12.i686 requires libpython2.6.so.1.0
Package system-config-display-2.2-1.fc12.i686 requires python(abi) = (’0′, ’2.6′, None)

我的运行结果显示有些软件包需要python 2.6的支持,Fedora 14已经默认安装python 2.7。

  1. 扫描重复安装的RPM软件包。
1
$ package-cleanup –dupes
  1. 扫描重复安装的软件包,并删除老版本的软件包。
1
$ package-cleanup –cleandupes
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道