rpm包管理详解(4)

来源:互联网 发布:冯大辉 知乎 匿名用户 编辑:程序博客网 时间:2024/06/14 18:27

转自: http://blog.csdn.net/dingyuanpu/article/details/5572310


介绍完了rpm包的安装和查询,本节接着来介绍rpm包的卸载和升级,这样以来rpm包的“增删改查”就都涉及到了。

rpm包的卸载和升级的指令如下:

rpm -e [包名] 用来卸载一个rpm包
rpm -U [包文件] 用来升级一个现有的rpm

需要注意的是,如果要卸载的rpm包中的内容被别的rpm包依赖,那么则无法卸载,例如

[leconte@localhost ~]$ rpm -e  php-commonerror: Failed dependencies:        php-common = 5.2.9-4 is needed by (installed) php-pdo-5.2.9-4.i386        php-common = 5.2.9-4 is needed by (installed) php-bcmath-5.2.9-4.i386        php-common = 5.2.9-4 is needed by (installed) php-curl-5.2.9-4.i386        php-common = 5.2.9-4 is needed by (installed) php-dba-5.2.9-4.i386

PHP-common由于被 php-pdo等包依赖而无法单独卸载,php-pdo和php-common可以利用上节介绍过的依赖关系查询指令查到:

[leconte@localhost ~]$ rpm -qR php-pdoconfig(php-pdo) = 5.2.9-4libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1.3)libc.so.6(GLIBC_2.3)libc.so.6(GLIBC_2.4)librt.so.1libsqlite3.so.0php-common = 5.2.9-4..............[leconte@localhost ~]$ rpm -q --whatrequires php-commonphp-pdo-5.2.9-4php-bcmath-5.2.9-4php-curl-5.2.9-4php-dba-5.2.9-4php-gd-5.2.9-4...............

这种情况下想要卸载php-common,只能将它依赖的所有包全部卸载掉。更暴力的方式是指定-nodeps忽略依赖关系限制,但是这样造成的后果就是php-pdo等包将无法正常使用,因此这种方式一般不推荐。

rpm包的升级指的是rpm包的版本升级,这种情况下实际内部执行的动作分两步,即先安装新版本然后卸载老版本。此外,rpm也可以进行包的降级,只需要指定–oldpackages参数即可。

值得注意的是在卸载和升级的过程中,包中的配置文件会被妥善处理,rpm会根据一系列规则决定配置文件是否保留,即使被替换,旧的配置文件也会被重命名后保存起来,你之前对配置文件做过的修改不会因为rpm包的升级而丢失。


原创粉丝点击