文章目录
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 <==重建数据库