37.每日一个Linux命令----RPM

描述:RPM 全名是『 RedHat Package Manager 』

优点:

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

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

缺点:

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

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

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

SRPM 是 Source RPM,与 RPM 档案相比, SRPM 多了一个重新编译的动作,我们就可以透过修改 SRPM 内的参数设定,重新编译产生能适合我们 Linux 环境的 RPM 档案。

rpm 就会将套件的信息写入:/var/lib/rpm 这个目录中,所以, 往后您在进行查询的时候或者是预计要升级的时候,相关的信息就会由 /var/lib/rpm 这个目录的内容数据来提供。

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

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

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

为安装包指定安装目录 使用--relocate

可使用的参数包括--nodeps, --nomd5, --noscripts, --replacefiles, --replacepkgs(已安装的软件再安装一次), --force, --test(检测依赖关系)

RPM 升级包

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

后面接的套件即使没有安装过,则系统将予以直接安装; 若后面接的套件有安装过旧版,则系统自动更新至新版;

[root@linux ~]# rpm -Uvh --oldpackage rp-pppoe-3.0-5.i386.rpm  

降级要加--oldpackage

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

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

RPM 查询包

[root@linux ~]# rpm -qa

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

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

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

参数:

查询主要分为两部分,一个是查已安装,另一个则是查某个 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 在系统上面的某个文件

RPM 卸载包

[root@linux ~]# rpm -e 套件名称

如果有依赖关系,您也可以用--nodeps 忽略依赖的检查来删除。

重建数据库

[root@linux ~]# rpm --rebuilddb  

REBUILD 安装包

--rebuild 

这个参数会将后面的 SRPM 进行『编译』与『打包』的动作,最后会产生 RPM 的档案,但是产生的 RPM 档案并没有安装到系统上。

--recompile

这个动作会直接的『编译』『打包』并且『安装』啰!请注意, rebuild 仅『编译并打包』而已,而 recompile 不但进行编译跟打包,还同时进行『安装』了!

转载于:https://my.oschina.net/u/2711763/blog/717552

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值