- 如果我们下载的是 SRPM ,那么要安装该软件时,你就必须要:
- 先将该软件以 RPM 管理的方式编译,此时 SRPM 会被编译成为 RPM 文件;
- 然后将编译完成的 RPM 文件安装到 Linux 系统当中
-
rp-pppoe - 3.1 - 5 .i386 .rpm 软件名称 软件的版本资讯 释出的次数 适合的硬件平台 扩展名
- 受惠於目前 x86 系统的支持方面,新的 CPU 都能够运行旧型 CPU 所支持的软件,也就是说硬件方面都可以向下兼容的,因此最低等级的 i386 软件可以安装在所有的 x86 硬件平台上面,不论是 32 位还是 64 位。但是反过来说就不行了。
- RPM 内含已经编译过的程序与配置档等数据,可以让使用者免除重新编译的困扰;
- RPM 在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装;
- RPM 文件本身提供软件版本资讯、相依属性软件名称、软件用途说明、软件所含文件等资讯,便於了解软件;
- RPM 管理的方式使用数据库记录 RPM 文件的相关参数,便於升级、移除、查询与验证。
CentOS 先将释出的软件放置到 YUM 服务器内,然后分析这些软件的相依属性问题,将软件内的记录资讯写下来 (header)。然后再将这些资讯分析后记录成软件相关性的清单列表。这些列表数据与软件所在的位置可以称呼为容器 (repository)。当用户端有软件安装的需求时,用户端主机会主动的向网络上面的 yum 服务器的容器网址下载清单列表,然后透过清单列表的数据与本机 RPM 数据库已存在的软件数据相比较,就能够一口气安装所有需要的具有相依属性的软件了。整个流程可以简单的如下图说明:
例题:
在没有网络的前提下,你想要安装一个名为 pam-devel 的软件,你手边只有原版光盘,该如何是好?
答:你可以透过挂载原版光盘来进行数据的查询与安装。请将原版光盘放入光驱,底下我们尝试将光盘挂载到 /media 当中,并据以处理软件的下载罗:
- 挂载光盘,使用: mount /dev/cdrom /media
- 找出文件的实际路径:find /media -name 'pam-devel*'
- 测试此软件是否具有相依性: rpm -ivh pam-devel... --test
- 直接安装: rpm -ivh pam-devel...
- 卸载光盘: umount /dev/cdrom
-Uvh 后面接的软件即使没有安装过,则系统将予以直接安装;若后面接的软件有安装过旧版,则系统自动升级至新版; -Fvh 如果后面接的软件并未安装到你的 Linux 系统上,则该软件不会被安装;亦即只有已安装至你Linux 系统内的软件会被『升级』!
若环境检查合格了,那么 RPM 文件就开始被安装到你的 Linux 系统上。安装完毕后,该软件相关的资讯就会被写入/var/lib/rpm/ 目录下的数据库文件中了。
因为安装软件是 root 的工作,因此你得要是 root 的身份才能够操作 rpm 这命令的。
[root@www ~]# rpm -qa <==已安装软件 [root@www ~]# rpm -q[licdR] 已安装的软件名称 <==已安装软件 [root@www ~]# rpm -qf 存在於系统上面的某个档名 <==已安装软件 [root@www ~]# rpm -qp[licdR] 未安装的某个文件名称 <==查阅RPM文件 选项与参数: 查询已安装软件的资讯: -q :仅查询,后面接的软件名称是否有安装; -qa :列出所有的,已经安装在本机 Linux 系统上面的所有软件名称; -qi :列出该软件的详细资讯 (information),包含开发商、版本与说明等; -ql :列出该软件所有的文件与目录所在完整档名 (list); -qc :列出该软件的所有配置档 (找出在 /etc/ 底下的档名而已) -qd :列出该软件的所有说明档 (找出与 man 有关的文件而已) -qR :列出与该软件有关的相依软件所含的文件 (Required 的意思) -qf :由后面接的文件名称,找出该文件属於哪一个已安装的软件; 查询某个 RPM 文件内含有的资讯: -qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在於找出 某个 RPM 文件内的资讯,而非已安装的软件资讯!注意!
[root@www ~]# rpm
- 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) 文件的创建时间已被改变
当你要安装一个 RPM 文件时:
- 首先你必须要先安装原厂释出的公钥文件;
- 实际安装原厂的 RPM 软件时, rpm 命令会去读取 RPM 文件的签章资讯,与本机系统内的签章资讯比对,
- 若签章相同则予以安装,若找不到相关的签章资讯时,则给予警告并且停止安装喔。
rpm --rebuilddb <==重建数据库