rpm常用命令汇总 -- 安装,升级,查询,验证,卸载

文章目录

    • 1 RPM 安装 (install)
    • 2 RPM 升级与更新 (upgrade/freshen)
    • 3 RPM 查询 (query)
    • 4 RPM 验证
    • 5 RPM 反安装与重建数据库 (erase/rebuilddb)

1 RPM 安装 (install)

[root@study ~]$ rpm -ivh package_name

选项与参数:
-i :install 安装的意思
-v :察看更详细的安装信息
-h :显示安装进度

范例一:安装 rp-pppoe 软件
[root@study ~]$ rpm -ivh rp-pppoe-3.11-5.el7.x86_64.rpm

范例二、一口气安装两个以上的软件时:
[root@study ~]$ rpm -ivh a.i386.rpm b.i386.rpm *.rpm
# 后面直接接上许多的软件文件!

范例三、直接由网络上面的某个文件安装,以网址来安装:
[root@study ~]$ rpm -ivh http://website.name/path/pkgname.rpm

rpm 安装时常用的选项与参数说明

选项 代表意义
--nodeps 使用时机:当发生软件属性相依问题而无法安装,但你执意安装时
危险性: 软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依, 则可能会造成该软件的无法正常使用!
--replacefiles 使用时机: 如果在安装的过程当中出现了“某个文件已经被安装在你的系统上面”的信息,又或许出现版本不合的信息 (confilcting files) 时,可以使用这个参数来直接覆盖文件。
危险性: 覆盖的动作是无法复原的!所以,你必须要很清楚的知道被覆盖的文件是真的可以被覆盖喔!否则会欲哭无泪!
--replacepkgs 使用时机: 重新安装某个已经安装过的软件!如果你要安装一堆 RPM 软件文件时,可以使用 rpm -ivh *.rpm ,但若某些软件已经安装过了, 此时系统会出现“某软件已安装”的信息,导致无法继续安装。此时可使用这个选项来重复安装喔!
--force 使用时机:这个参数其实就是 --replacefiles 与 --replacepkgs 的综合体!
--test 使用时机: 想要测试一下该软件是否可以被安装到使用者的 Linux 环境当中,可找出是否有属性相依的问题。范例为:rpm -ivh pkgname.i386.rpm --test
--justdb 使用时机: 由于 RPM 数据库破损或者是某些缘故产生错误时,可使用这个选项来更新软件在数据库内的相关信息。
--nosignature 使用时机: 想要略过数码签章的检查时,可以使用这个选项。
--prefix 新路径 使用时机: 要将软件安装到其他非正规目录时。举例来说,你想要将某软件安装到 /usr/local 而非正规的 /bin, /etc 等目录, 就可以使用“ --prefix/usr/local ”来处理了。
--noscripts 使用时机:不想让该软件在安装过程中自行执行某些系统指令。
说明:RPM 的优点除了可以将文件放置到定位之外,还可以自动执行一些前置作业的指令,例如数据库的初始化。 如果你不想要让 RPM 帮你自动执行这一类型的指令,就加上他吧!

2 RPM 升级与更新 (upgrade/freshen)

选项 代表意义
--Uvh 后面接的软件即使没有安装过,则系统将予以直接安装; 若后面接的软件有安装过旧版,则系统自动更新至新版;
--Fvh 如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;只有已安装至你 Linux 系统内的软件才会被“升级”!

3 RPM 查询 (query)

[root@study ~]$ rpm -qa										<==已安装软件
[root@study ~]$ rpm -q[licdR] 已安装的软件名称 				<==已安装软件
[root@study ~]$ rpm -qf 存在于系统上面的某个文件名 				<==已安装软件
[root@study ~]$ rpm -qp[licdR] 未安装的某个文件名称 			<==查阅RPM文件

选项与参数:
查询已安装软件的信息:
-q :仅查询,后面接的软件名称是否有安装;
-qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称;
-qi :列出该软件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该软件所有的文件与目录所在完整文件名 (list);
-qc :列出该软件的所有配置文件 (找出在 /etc/ 下面的文件名而已)
-qd :列出该软件的所有说明文档 (找出与 man 有关的文件而已)
-qR :列出与该软件有关的相依软件所含的文件 (Required 的意思)
-qf :由后面接的文件名称,找出该文件属于哪一个已安装的软件;
-q --scripts:列出是否含有安装后需要执行的脚本档,可用以 debug 喔!
查询某个 RPM 文件内含有的信息:
-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出某个 RPM 文件内的信息,而非已安装的软件信息!注意!

4 RPM 验证

[root@study ~]$ rpm -Va
[root@study ~]$ rpm -V 已安装的软件名称
[root@study ~]$ rpm -Vp 某个 RPM 文件的文件名
[root@study ~]$ rpm -Vf 在系统上面的某个文件
选项与参数:
-V :后面加的是软件名称,若该软件所含的文件被更动过,才会列出来;
-Va :列出目前系统上面所有可能被更动过的文件;
-Vp :后面加的是文件名称,列出该软件内可能被更动过的文件;
-Vf :列出某个文件是否被更动过~

范例

范例一:列出你的 Linux 内的 logrotate 这个软件是否被更动过?
[root@study ~]$ rpm -V logrotate
# 如果没有出现任何讯息,恭喜你,该软件所提供的文件没有被更动过。
# 如果有出现任何讯息,才是有出现状况啊!
范例二:查询一下,你的 /etc/crontab 是否有被更动过?
[root@study ~]$ rpm -Vf /etc/crontab
.......T. c /etc/crontab
# 瞧!因为有被更动过,所以会列出被更动过的信息类型!

改动的文件名之前有个 c ,然后就是一堆奇怪的文字了。那个 c 代表的是 configuration,就是配置文件的意思。至于最前面的几个信息是:

  • S:(file Size differs) 文件的容量大小是否被改变
  • M:(Mode differs) 文件的类型或文件的属性 (rwx) 是否被改变?如是否可执行等参数已被改变
  • 5:(MD5 sum differs) MD5 这一种指纹码的内容已经不同
  • D:(Device major/minor number mis-match) 设备的主/次代码已经改变
  • L:(readLink(2) path mis-match) Link 路径已被改变
  • U:(User ownership differs) 文件的所属人已被改变
  • G:(Group ownership differs) 文件的所属群组已被改变
  • T:(mTime differs) 文件的创建时间已被改变
  • P:(caPabilities differ) 功能已经被改变

所以,如果当一个配置文件所有的信息都被更动过,那么他的显示就会是:

SM5DLUGTP c filename

至于那个 c 代表的是“ Config file ”的意思,也就是文件的类型,文件类型有下面这几类:

  • c:配置文件(config file)
  • d:文件数据文件(documentation)
  • g:鬼文件~通常是该文件不被某个软件所包含,较少发生!(ghost file)
  • l:授权文件(license file)
  • r:读我文件(read me)

5 RPM 反安装与重建数据库 (erase/rebuilddb)

反安装就是将软件卸载,使用 -e 参数

[root@study ~]$ rpm -e 已安装的软件名称

由于 RPM 文件常常会安装/移除/升级等,某些动作或许可能会导致 RPM 数据库 /var/lib/rpm/
内的文件破损。可以使用 --rebuilddb 重建数据库。

[root@study ~]$ rpm --rebuilddb 			<==重建数据库

你可能感兴趣的:(Linux)