关键字: rpm 强制卸载jdk
rpm -e j2sdk1.4.2_04
强制覆盖安装jdk
rpm -Uvh j2sdk-1_4_1_02-fcs-linux-i586.rpm --force --nodeps
Preparing... ########################################### [100%]
1:j2sdk ########################################### [100%]
附RPM菜鸟级别大全(刚起步,可怜啊,咳~)
RPM 大全
RPM 有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证。 下面我们就来逐一的讲解吧。
一、 安装RPM包
RPM 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名。其中包括 软件包的名称(foo),版本号(1.0),发行号(1), 和 硬件平台(i386)。安装一个软件包只需简单的键入以下命令:
$ rpm -ivh foo-1.0-1.i386.rpm
foo ####################################
RPM安装完毕后会打印出软件包的名字(并不一定与文件名相同), 而后打印一连串的#号以表示安装进度。虽然软件包的安装被设计的尽量简单易行, 但还是可能会发生如下的错误:
1、 软件包已被安装
如果您的软件包已被安装, 将会出现以下信息:
$ rpm -ivh foo-1.0-1.i386.rpm
foo package foo-1.0-1 is already installed
error: foo-1.0-1.i386.rpm cannot be installed
如果您仍旧要安装该软件包,可以在命令行上使用--replacepkgs 选项,RPM将
忽略该错误信息强行安装。
2、文件冲突
如果您要安装的软件包中有一个文件已在安装其它软件包时安装,会出现以下错误信息:
# rpm -ivh foo-1.0-1.i386.rpm
foo /usr/bin/foo conflicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed
要想让RPM 忽略该错误信息, 请使用--replacefiles 命令行选项。
3、未解决依赖关系
RPM软件包可能依赖于其它软件包,也就是说要求在安装了特定的软件包之后才能安装该软件包。如果在您安装某个软件包时存在这种未解决的依赖关系。会产生以下信息:
$ rpm -ivh bar-1.0-1.i386.rpm
failed dependencies: foo is needed by bar-1.0-1
您必须安装完所依赖的软件包,才能解决这个问题。如果您想强制安装(这是个坏主意, 因为安装后的软件包未必能正常运行), 请使用--nodeps 命令行选项。
二、卸载RPM包
卸载软件包就象安装软件包时一样简单:
$ rpm -e foo
注意这里使用软件包的名字name ``foo, 而不是软件包文件的名字file
``foo-1.0-1.i386.rpm。如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如:
$ rpm -e foo
removing these packages would break dependencies:foo is needed by

bar-1.0-1
若让RPM忽略这个错误继续卸载(这可不是一个好主意,因为依赖于该软件包的程序可能无法运行),请使用--nodeps 命令行选项。
三、升级RPM包
升级软件包和安装软件包十分类似:.
$ rpm -Uvh foo-2.0-1.i386.rpm
foo ####################################
RPM将自动卸载已安装的老板本的foo 软件包,您不会看到有关信息。事实上您可能总是使用 -U 来安装软件包,因为即便以往未安装过该软件包,也能正常运行。因为RPM 执行智能化的软件包升级,
自动处理配置文件,您将会看到如下信息:
saving /etc/foo.conf as /etc/foo.conf.rpmsave
这表示您对配置文件的修改不一定能向上兼容。 因此,RPM 会先备份老文件再安装新文件。您应当尽快解决这两个配置文件的不同之处,以使系统能持续正常运行。
因为升级实际包括软件包的卸载与安装两个过程,所以您可能会碰到由这两个操作引起的错误。另一个你可能碰到的问题是:当您使用旧版本的软件包来升级新版本的软件时,RPM会产生以下错误信息:
$ rpm -Uvh foo-1.0-1.i386.rpm
foo package foo-2.0-1 (which is newer) is already installed
error: foo-1.0-1.i386.rpm cannot be installed
如果你确有需要将该软件包”降级,加入 --oldpackage 命令选项就可以了。
四、 查询已安装的软件包
使用命令rpm -q来查询已安装软件包的数据库。简单的使用命令 rpm -q foo 会打印出foo软件包 的包名 ,

版本号,和发行号:
$ rpm -q foo
foo-2.0-1
除了指定软件包名以外,您还可以使用以下选项来指明要查询哪些软件包的信 息。 这些选项被称之为“软件包指定选项“。
· -a 查询所有已安装的软件包
· -f 将查询包含有文件. 的软件包
· -p 查询软件包文件名为的软件包
还可以指定查询软件包时所显示的信息。它们被称作信息选择选项:
· -i 显示软件包信息,如描述, 发行号, 尺寸, 构建日期, 安装日期, 平台, 以及其它一些各类信息。
· -l 显示软件包中的文件列表。
· -s 显示软件包中所有文件的状态。
· -d 显示被标注为文档的文件列表(man 手册, info 手册, READMEs, etc)。 · -c 显示被标注为配置文件的文件列表。这些是您要在安装完毕以后加以定制的文件(sendmail.cf,
passwd, inittab, etc)。
对于那些要显示文件列表的文件, 您可以增加-v 命令行选项以获得如同 ls -l 格式的输出。
五、 验证软件包
验证软件包是通过比较已安装的文件和软件包中的原始文件信息来进行的。验证主要是比较文件的尺寸,MD5 校验码, 文件权限, 类型, 属主和用户组等。
rpm-V命令用来验证一个软件包。您可以使用任何包选择选项来查询您要验证的

软件包。 命令rpm -V foo
将用来验证foo软件包。又如:
· 验证包含特定文件的软件包:
rpm -Vf /bin/vi
· 验证所有已安装的软件包:
rpm -Va
· 根据一个RPM包来验证:
rpm -Vp foo-1.0-1.i386.rpm
如果您担心你的RPM数据库已被破坏,就可以使用这种方式。
如果一切均校验正常将不会产生任何输出。如果有不一致的地方,就会显示出来。 输出格式是8位长字符
串, ``c 用以指配置文件, 接着是文件名. 8位字符的每一个 用以表示文件与RPM数据库中一种属性的比较
结果 。``. (点) 表示测试通过。.下面的字符表示对RPM软件包进行的某种测试失败:
显示字符 错误源
5 MD5 校验码
S 文件尺寸
L 符号连接
T 文件修改日期
D 设备
U 用户
G 用户组
M 模式e (包括权限和文件类型)

RPM(Red Hat Package Manager)
命令:rpm

1、查询、检查软件包
rpm {-q|--query} [select-options] [query-options]
rpm {-V|--verify} [select-options] [verify-options]
2、安装、升级、删除软件包
rpm {-i|--install} [install-options] PACKAGE_FILE ...
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
[--notriggers] [--repackage] [--test] PACKAGE_NAME ...
3、其他
rpm {--initdb|--rebuilddb}
rpm {--addsign|--resign} PACKAGE_FILE ...
rpm {--querytags|--showrc}
rpm {--setperms|--setugids} PACKAGE_NAME ...
RPM(Red Hat Package Manager)
命令:rpm

select-options
[PACKAGE_NAME] [-a,--all] [-f,--file FILE]
[-g,--group GROUP] {-p,--package PACKAGE_FILE]
[--fileid MD5] [--hdrid SHA1] [--pkgid MD5] [--tid TID]
[--querybynumber HDRNUM] [--triggeredby PACKAGE_NAME]
[--whatprovides CAPABILITY] [--whatrequires CAPABILITY]

query-options
[--changelog] [-c,--configfiles] [-d,--docfiles] [--dump]
[--filesbypkg] [-i,--info] [--last] [-l,--list]
[--provides] [--qf,--queryformat QUERYFMT]
[-R,--requires] [--scripts] [-s,--state]
[--triggers,--triggerscripts]

verify-options
[--nodeps] [--nofiles] [--noscripts]
[--nodigest] [--nosignature]
[--nolinkto] [--nomd5] [--nosize] [--nouser]
[--nogroup] [--nomtime] [--nomode] [--nordev]
RPM(Red Hat Package Manager)
命令:rpm

install-options
[--aid] [--allfiles] [--badreloc] [--excludepath OLDPATH]
[--excludedocs] [--force] [-h,--hash]
[--ignoresize] [--ignorearch] [--ignoreos]
[--includedocs] [--justdb] [--nodeps]
[--nodigest] [--nosignature] [--nosuggest]
[--noorder] [--noscripts] [--notriggers]
[--oldpackage] [--percent] [--prefix NEWPATH]
[--relocate OLDPATH=NEWPATH]
[--repackage] [--replacefiles] [--replacepkgs]
[--test]

【示例】
rpm -v 显示rpm程序的详细信息
rpm --version 显示rpm的版本号
rpm -qa 显示系统中安装的所有软件包
rpm -q gcc 查询指定软件包是否已安装
rpm -qi gcc 显示指定软件包的详细信息
RPM(Red Hat Package Manager)
命令:rpm

rpm -ql gcc 显示指定软件包所包含的文件列表
rpm -qf /usr/lib/bash 查看指定文件所属的软件包
rpm -qp /tmp/webmin.rpm 查询RPM包文件中的文件信息

rpm -i webmin-1.290-1.noarch.rpm 安装指定的RPM包
rpm -ivh webmin-1.290-1.noarch.rpm 安装并显示详信息

rpm -ivh --test webmin-1.290-1.noarch.rpm 对安装进行测试,并不是安装
rpm -ivh --replacepkgs webmin-1.290-1.noarch.rpm
软件包重复安装将会失败,若仍需要安装必须加--replacepkgs
rpm -ivh --replacefiles webmin-1.290-1.noarch.rpm
软件包的某个文件已在安装其他软件包时安装过,则安装将会失败,若仍需要安装必须加--replacefiles
rpm -ivh --nodeps webmin-1.290-1.noarch.rpm
软件包所依赖的软件包未安装,则安装将会失败,若仍需要安装必须加—nodeps

rpm -ivh --force webmin-1.290-1.noarch.rpm 强制安装指定软件包
(忽略软件包依赖性和文件冲突,不建议)
RPM(Red Hat Package Manager)
命令:rpm

rpm –U webmin-1.29 升级指定的软件包
rpm –Uvh webmin-1.29 升级指定的软件包(显示详细信息)

rpm -e webmin-1.29 删除指定的软件包

rpm -V webmin 验证软件包webmin
rpm -Vf /bin/vi 验证包含指定文件的软件包是否正确
rpm -Va 验证所有已经安装的软件包
rpm -Vp webmin.rpm 利用RPM文件验证软件包

注:如校验正确将没有任何输出(.表示验证通过)
5 MD5校验
S 文件尺寸
L 符号链接
T 文件修改日期
D 设备
U 用户
G 用户组
M 模式(包括权限和文件类型)

rpm批量卸载

rpm -e 每次只能卸载一个文件,要卸载大量同名的文件可就郁闷了,参考网上的一些做法,写了个shell文件批量卸载

1,新建uninstall.sh

2,内容如下:(批量卸载含php的rpm包)

#!/bin/bash
touch uninstall_list.txt
chmod u+x uninstall_list.txt
rpm -qa |grep php >uninstall_list.txt
i=1
cat uninstall_list.txt | while read line
do
echo "uninstall $i : $line"
rpm -e --nodeps $line
i=$(($i+1))
done

3,执行uninstall.sh

如果没有含相同内容,那只能把所有包名手动写入uninstall.txt中了

rpm 包的安装、卸载、升级、查询、验证的更多相关文章

  1. 关于rpm包的安装卸载等

    在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的“添加/删除程序”,但是功能又比“添加/删除程序”强很多,它就是Red Hat Package Manager(简称RPM) ...

  2. [Linux] 021 RPM 包的安装、升级与卸载

    1. 包全名与包名包全名 包全名:操作的包是没有安装的软件包 使用包全名.而且要注意路径包名 包名:操作已经安装的软件包时,使用 是搜索 /var/lib/rpm/ 中的数 2. 安装 $ rpm - ...

  3. rpm包的安装,查询,卸载,升级,校验,数据库重建,验证数据包

    rpm命名: 包:组成部分 主包:bind-9.7.1-1.i586.e15.rpm 子包:bind-lib-9.7.1-1.i586.e15.rpm bind-utils-9.7.1-1.i586. ...

  4. 插入光盘,创建挂载点,挂载设备,安装rpm包,升级rpm包,卸载rpm包,查询rpm包是否安装,查询rpm包信息、安装位置,查询系统文件名属于哪个安装包

    插入光盘: 创建挂载点: 创建挂载点. 挂载设备:或者mount /dev/sr0 /mnt/cdrom 安装rpm包: [root@localhost Packages]# rpm -ivh mys ...

  5. 【转载】linux-查询rpm包相关安装、卸载脚本

        测试过程中,有时要测试开发自己打的rpm包,为了确认打包正确,需要查询rpm包相关安装.卸载脚本,可以使用命令:   [root@6 /]#rpm -q --scripts mysql pos ...

  6. 离线安装rpm包并解决依赖(升级vsftpd为例)

    背景  实际开发中,我们的linux服务器是处理离线状态的,并不能访问互联网.如果此时要在linux上安装或者升级软件,就只能通过rpm包的安装方式.rpm包安装有一个缺陷,就是不能处理安装包的依赖问 ...

  7. 安装 RPM 包或者安装源码包

    安装 RPM 包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下. ...

  8. linux的基本操作(RPM包或者安装源码包)

    RPM包或者安装源码包 在windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续“下一步”即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下.所以你要 ...

  9. 安装RPM包或者安装源代码包

    第十一章 安装RPM包或者安装源代码包 在windows下安装一个软件非常轻松,仅仅要双击.exe的文件,安装提示连续"下一步"就可以,然而linux系统下安装一个软件似乎并不那么 ...

随机推荐

  1. 【转载】多模式串匹配之AC自动机

    原文地址:https://www.cnblogs.com/codeape/p/3845375.html 目录 [隐藏] 一.概述 二.AC算法思想 三.字典树tire的构造 四.搜索路径的确定 附录: ...

  2. dubbo的服务发现和注册如何实现

    Dubbo通常我们是如何使用的? #================================================================================== ...

  3. Java编程的逻辑 (93) - 函数式数据处理 (下)

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. nginx 的一些优化

    一般来说 nginx 配置文件中对优化比较有作用的为以下几项: worker_processes 8; nginx 进程数,建议按照 cpu 数目来指定,一般为它的倍数. worker_cpu_aff ...

  5. 【nodejs】exports 和 module.exports 的区别

    require 用来加载代码,而 exports 和 module.exports 则用来导出代码.但很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 e ...

  6. MySQL的SQL预处理(Prepared)

    Prepared SQL Statement:SQL的执行.预编译处理语法.注意点 一.SQL 语句的执行处理1.即时 SQL 一条 SQL 在 DB 接收到最终执行完毕返回,大致的过程如下: 1. ...

  7. Windows补丁更新Tips

    1.Windows 2012 R2 MS14-066补丁安装失败 现象:下载对应版本的补丁,提示“此更新不适用于你的计算机” 解决:使用命令行可成功安装 @echo off expand –F:* d ...

  8. pandas replace 替换功能function

    list like replace method dict like replace method regex expression import pandas as pd import numpy ...

  9. unable to create ...erroractionpreference....

    Docker on windows 10 can't startup after deleting MobyLinuxVM in Hyper-V manually 重新启动hyper-v就可以解决了

  10. duilib中字体font设置

    <Font name="微软雅黑" size="9" bold="false"/> <Label name="n ...