RPM 全名是『 RedHat Package Manager 』简称则为 RPM。RPM

是以一种数据库记录的方式来将你所需要的套件安装到你的 Linux 主机的一套管理程序。他最大的特点就是将您要安装的套件先编译过(

如果需要的话 )并且打包好了,透过包装好的套件里头预设的数据库记录, 记录这个套件要安装的时候必须要的相依属性模块( 就是你的

Linux 主机需要先存在的几个必须的套件 ),当安装在你的 Linux 主机时, RPM 会先依照套件里头的纪录数据查询 Linux

主机的相依属性套件是否满足, 若满足则予以安装,若不满足则不予安装。那么安装的时候就将该套件的信息整个写入 RPM

的数据库中,以便未来的查询、验证与反安装!这样一来的优点是:

1. 由于已经编译完成并且打包完毕,所以安装上很方便( 不需要再重新编译 );

2. 由于套件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装;

缺点是:

1. 安装的环境必须与打包时的环境需求一致或相当;

2. 需要满足套件的相依属性需求;

3. 反安装时需要特别小心,最底层的套件不可先移除,否则可能造成整个系统的问题!

SRPM 是 Source RPM 的意思,也就是这个 RPM 档案里面含有原始码( Source Code )哩!特别注意的是,这个

SRPM 所提供的套件内容『并没有经过编译』, 他提供的是原始码喔, 通常 SRPM 的附檔名是以 ***.src.rpm

这种格式来命名的。。与 RPM 档案相比, SRPM 多了一个重新编译的动作, 而且 SRPM 编译完成会产生 RPM 档案。SRPM

既然是原始码的格式,自然我们就可以透过修改 SRPM 内的参数设定档,然后重新编译产生能适合我们 Linux 环境的 RPM

档案。

使用RPM时可能会遇到软件包依赖性的问题,第一种解决方式是安装好所有的依赖包,第二种方式是使用urpmi/apt/yum来自动安装依赖包。

rpm 就会将套件的信息写入:/var/lib/rpm 这个目录中,所以,

往后您在进行查询的时候或者是预计要升级的时候,相关的信息就会由 /var/lib/rpm

这个目录的内容数据来提供。

RPM 安装包

[root@linux ~]# rpm -ivh rp-pppoe-3.1-5.i386.rpm

[root@linux ~]# rpm -ivh a.i386.rpm b.i386.rpm

*.rpm

[root@linux ~]# rpm -ivh

http://website.name/path/pkgname.rpm

可使用的参数包括--nodeps, --nomd5, --noscripts, --replacefiles,

--replacepkgs, --force, --test

RPM 升级包

-Uvh

后面接的套件即使没有安装过,则系统将予以直接安装;

若后面接的套件有安装过旧版,则系统自动更新至新版;

-Fvh

如果后面接的套件并未安装到您的 Linux 系统上,则该套件不会被安装;亦即只有安装至您 Linux

系统内的套件会被『升级』!

RPM 查询包

[root@linux ~]# rpm -qa

[root@linux ~]# rpm -q[licdR] 已安装的套件名称

[root@linux ~]# rpm -qf 存在于系统上面的某个档案

[root@linux ~]# rpm -qp[licdR] 未安装的某个文件名称

参数:

在查询的部分,所有的参数之前都需要加上 -q 才是所谓的查询!

查询主要分为两部分,一个是查已安装,另一个则是查某个 rpm 档案内容。

查询已安装套件的信息:

-q :仅查询,后面接的套件名称是否有安装;

-qa :列出所有的,已经安装在本机 Linux 系统上面的所有套件名称;

-qi :列出该套件的详细信息 (information),包含开发商、版本与说明等;

-ql :列出该套件所有的档案与目录所在完整文件名 (list);

-qc :列出该套件的所有设定档 (找出在 /etc/ 底下的檔名而已)

-qd :列出该套件的所有说明档 (找出与 man 有关的档案而已)

-qR :列出与该套件有关的相依套件所含的档案 (Required 的意思)

-qf :由后面接的文件名称,找出该档案属于哪一个已安装的套件;

查询某个 RPM 档案内含有的信息:

-qp[icdlR]:注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出

某个 RPM 档案内的信息,而非已安装的套件信息!注意!

RPM 验证包[root@linux

~]# rpm -Va

[root@linux ~]# rpm -V 已安装的套件名称

[root@linux ~]# rpm -Vp 某个 RPM 档案的档名

[root@linux ~]# rpm -Vf 在系统上面的某个档案

参数:-V

:后面加的是套件名称,若该套件所含的档案被更动过,才会列出来;

-Va :列出目前系统上面所有可能被更动过的档案;

-Vp :后面加的是文件名称,列出该套件内可能被更动过的档案;

-Vf :列出某个档案是否被更动过~

RPM 卸载包

[root@linux ~]# rpm -e logrotate <==解安装 logrotate

套件

[root@linux ~]# rpm --rebuilddb <==重建数据库

RPMBUILD 安装包

--rebuild

这个参数会将后面的 SRPM 进行『编译』与『打包』的动作,最后会产生 RPM 的档案,但是产生的 RPM

档案并没有安装到系统上。

--recompile

这个动作会直接的『编译』『打包』并且『安装』啰!请注意, rebuild 仅『编译并打包』而已,而 recompile

不但进行编译跟打包,还同时进行『安装』了!

摘自 鸟哥的Linux私房菜

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐