`
liuyuanhong
  • 浏览: 3687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

RPM 是什么?

 
阅读更多
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私房菜
分享到:
JMS
评论

相关推荐

    安装keepalived确实的rpm包

    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 epel rpm epel

    ansible的rpm安装包

    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....

    GCC-rpm安装包.rar

    给了台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

    ceph-test-10.2.7-0.el7.x86_64.rpm

    官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装

    RPM Builder 将tar.gz 转成RPM

    RPM Builder 将tar.gz 转成RPM

    rpm 4.11.3 版本升级

    rpm 4.11.3 版本升级离线 rpm 安装包 rpm-4.11.3-45.el7.x86_64.rpm

    安装gcc需要的相关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安装包

    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 ...

    gcc 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包

    telnet的rpm包

    docker离线安装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_...

    ncurses-devel-5.9-14.20130511.el7_4.i686.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    GCC G++ rpm安装包.part1.rar

    共两个部分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 linux DNS 软件包 rpm

    linux64位中文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安装

    wget命令rpm安装文件,需要预先安装rpm,才可以配置。

    rpm命令手册 rpm 命令手册

    rpm 命令手册 rpm 命令手册 rpm 命令手册 rpm 命令手册 rpm 命令手册

    ffmpeg版本的rpm,适用环境ky10、centos

    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所有的rpm包

    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-...

Global site tag (gtag.js) - Google Analytics