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私房菜
分享到:
相关推荐
autoconf-2.63-5.1.el6.noarch.rpm automake-1.11.1-1.2.el6.noarch.rpm cluster-glue-1.0.5-2.el6.i686.rpm cluster-glue-libs-1.0.5-2.el6.i686.rpm cluster-glue-libs-devel-1.0.5-2.el6.i686.rpm glib2-2.22.5-5...
rpm epel rpm epel
rpm -ivh epel-release-7-11.noarch.rpm ###再执行: yum install -y * ###ok python-babel-0.9.6-8.el7.noarch.rpm python-markupsafe-0.11-10.el7.x86_64.rpm PyYAML-3.10-11.el7.x86_64.rpm libyaml-0.1.4-11....
给了台linux服务器,不能上外网,安装nginx,需要很多依赖,GCC的依赖很难找,这里整理了以下 mpfr-3.1.1-4.el7.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm ...rpm -Uvh *.rpm --nodeps --force
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
RPM Builder 将tar.gz 转成RPM
rpm 4.11.3 版本升级离线 rpm 安装包 rpm-4.11.3-45.el7.x86_64.rpm
安装gcc需要的相关rpm包: cloog-ppl-0.15.7-1.2.el6.x86_64.rpm cpp-4.4.7-3.el6.x86_64.rpm gcc-4.4.7-3.el6.x86_64.rpm glibc-2.12-1.107.el6.x86_64.rpm glibc-common-2.12-1.107.el6.x86_64.rpm glibc-devel-...
linux7操作系统 openssh9.0p1 rpm安装包 rpm -e openssh-clients-7.4p1-16.el7.x86_64 rpm -e openssh-server-7.4p1-16.el7.x86_64 rpm -e openssh-7.4p1-16.el7.x86_64 rpm -ivh openssh-9.0p1-1.el7.x86_64.rpm ...
rpm -ivh cpp-3.4.6-3.i386.rpm rpm -ivh glibc-kernheaders-2.4-9.1.98.EL.i386.rpm rpm -ivh glibc-headers-2.3.4-2.25.i386.rpm rpm -ivh glibc-devel-2.3.4-2.25.i386.rpm rpm -ivh gcc-3.4.6-3.i386.rpm
telnet的rpm包
lxc-libs-1.0.11-1.el6.x86_64.rpm lxc-1.0.11-1.el6.x86_64.rpm lua-lxc-1.0.11-1.el6.x86_64.rpm lua-filesystem-1.4.2-1.el6.x86_64.rpm lua-alt-getopt-0.7.0-1.el6.noarch.rpm libcgroup-0.40.rc1-26.el6.x86_...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
共两个部分GccG++ rpm安装包.part1.rar 和 GccG++ rpm安装包.part2.rar 包括linux上安装GCC或G++的所有安装软件和安装包。 压缩包中有: libstdc++-3.4.6-11.i386.rpm libstdc++-devel-3.4.6-11.i386.rpm gcc-c++-...
linux DNS 软件包 rpm linux DNS 软件包 rpm linux DNS 软件包 rpm
1、rpm -ivh libFS-1.0.0-3.1.x86_64.rpm 2、rpm -ivh ttmkfdir-3.0.9-23.el5.x86_64.rpm 3、rpm -ivh chkfontpath-1.10.1-1.1.x86_64.rpm xorg-x11-xfs-1.0.2-4.x86_64.rpm 4、rpm -ivh fonts-chinese-3.02-12.el5....
wget命令rpm安装文件,需要预先安装rpm,才可以配置。
rpm 命令手册 rpm 命令手册 rpm 命令手册 rpm 命令手册 rpm 命令手册
2、执行安装 rpm -ivh ffmpeg-6.0-1.el7.centos.x86_64.rpm --nodeps --force 3、安装完成后,目录在/usr/local/ffmpeg /usr/local/ffmpeg/bin/ffmpeg [root@localhost /usr/local/ffmpeg/bin]# ./ffmpeg ffmpeg ...
glibc-2.14.1-6.x86_64.rpm glibc-common-2.14.1-6.x86_64.rpm glibc-devel-2.14.1-6.x86_64.rpm glibc-headers-2.14.1-6.x86_64.rpm glibc-static-2.14.1-6.x86_64.rpm glibc-utils-2.14.1-6.x86_64.rpm nscd-...