rpm or yum error: %preun( ) scriptlet failed, exit status 1

rpm删除出现”error: %preun( ) scriptlet failed, exit status 1解决方法

 

今天删除软件的时候报了下面的这个错误:

错误提示是:error: %preun(xxxxxx) scriptlet failed, exit status 1

 

最后在网上找到一个办法,就是加noscripts 标记来删除RPMnoscripts 相当于 -nopre -nopost  -nopreun -nopostun

即卸载命令变为:

$rpm -e –noscripts xxxxxx

若要查看与RPM关联的scripts,使用-script查询RPM包。

rpm -q -scripts package

卸载时,若系统里有同一程序的多个安装版本要一起删除,可使用-allmatches标记,如

rpm -e –noscripts -allmatches xxxxxx

the using of package-cleanup

package-cleanup的使用

clip_image001

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

 

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

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

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

命令格式:

package-cleanup [options] <item …>

 

1. 列出与其他RPM没有依赖关系的软件包,又叫叶节点(leaf node),即,没有软件包依赖叶节点。

$ 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

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

2. 列出当前软件仓库中不再提供支持的本地已安装的软件包。也就是说,列出的软件包将不会再升级。

$ 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

3. 删除旧内核文件(kernel, kernel-devel)。

$ package-cleanup –oldkernels

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

可以用参数–count <COUNT>指定要保留的内核个数,默认是2

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

例如:

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

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

4. 列出有依赖问题的软件包。

$ 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

5. 扫描重复安装的RPM软件包。

$ package-cleanup –dupes

6. 扫描重复安装的软件包,并删除老版本的软件包。

$ package-cleanup –cleandupes

 

No manual entry for printf in section 3

No manual entry for printf in section 3

Fedora && Ubuntu 安装manual

clip_image001

Fedora

用虚拟机装好fedora 19之后,竟然查阅不到,

直接yum install man-pages即可解决。

Ubuntu

网上看到说是安装manpages-dev即可。

亮点

clip_image002

现在fedora19grouplist多了好几个比较好的包,比如:

GNOME Desktop

   KDE Plasma Workspaces

   Xfce Desktop

   LXDE Desktop

   Cinnamon Desktop

   MATE Desktop

   Sugar Desktop Environment

   Development and Creative Workstation

   Web Server

   Infrastructure Server

   Basic Desktop

   Minimal Install

   C Development Tools and Libraries

   Development Tools

   LibreOffice

   RPM Development Tools

   System Tools

   3D Printing

   Administration Tools

   Authoring and Publishing

   Books and Guides

   Cloud Infrastructure

   Design Suite

   Editors

   Educational Software

   Electronic Lab

   Engineering and Scientific

   Fedora Eclipse

   Games and Entertainment

   Medical Applications

   Milkymist

   Network Servers

   Office/Productivity

   Robotics

   Security Lab

   Sound and Video

   Text-based Internet

   Window Managers

特别是上面的C开发和开发工具,偶觉得都是亮点。