设为首页 收藏本站
查看: 959|回复: 0

[经验分享] CentOS RPM 包使用详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2018-4-22 13:29:39 | 显示全部楼层 |阅读模式
  RPM(Redhat Package Manager)的缩写,本意为:Red Hat 软件包管理,目前已经成为Linux工业标准。现在OpenLinux/SUSE/等分发版本的linux都有采用。
  RPM包里面都包含什么?
  里面包含可执行的二进制程序,这个程序和windows的软件包中的.exe文件类似是可执行的;
  RPM包中还包括程序运行时所需要的文件,这也是和windows的软件包类似;
  
  包管理器的功能:
  打包、安装、卸载、升级、校验、数据库管理等
  包的前端工具:
  dpkg --> apt-get (ubuntu)
  rpm -->yum(增强型前端工具),yum(Yellow Dog)
  RPM包管理的用途:
  1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
  2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
  3、可以在查询系统中的软件包是否安装以及其版本;
  4、作为开发者可以把自己的程序打包为RPM包发布;
  5、软件包签名GPG和MD5的导入,验证和签名发布;
  6、依赖性检查,查看是否有软件包由于不兼容而扰乱了系统;
  RPM包的使用权限:
  RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以进行操作;如果普通用户拥有安装目录的权限,也可以进行安装等操作;
  RPM包的命名格式:
  name-version-relase.arch.rpm
  name:软件包名称
  verion:带有主,次和修订的软件包版本
  release:rpm自身的发行号,与程序源码的发行号无关,仅用于标识对rpm包的不同制作的修订;同时,release还包含此包适用的OS
  arch:适用于的硬件平台
  x86:i386,i486,i586,i686等;
  x86_64:x86_64
  powerpc:ppc
  noarch:依赖于虚拟机
  例如:bash-4.2.3-3.centos5.x86_64.rpm
  RPM分包机制:
  核心包:包含程序最常用的功能
  httpd-2.2.15-39.el6.centos.x86_64.rpm
  开发包:包含开发所需要的库模块
  httpd-devel-2.2.15-39.el6.centos.x86_64.rpm
  帮助文档:
  httpd-manual-2.2.15-39.el6.centos.noarch.rpm
  工具包:
  httpd-tools-2.2.15-39.el6.centos.x86_64.rpm
  RPM命令参数:
  -e   卸载rpm包
  -q   查询已安装的软件信息
  -i    安装rpm包
  -u   升级rpm包
  -c   显示所有配置文件
  -d   显示所有文档文件
  -h   显示安装进度
  -l    列出软件包中的文件
  -a   显示出文件状态
  -p   查询/校验一个软件包文件
  -v   显示详细的处理信息
  --replacepkgs       重新安装rpm包
  --justdb                升级数据库,不修改文件系统
  --percent              在软件包安装时输出百分比
  --version              显示版本信息
  --dump                显示基本文件信息
  --nomd5             不验证文件的md5支持
  --nofiles              不验证软件包中的文件
  --whatrequire      查询/验证需要的一个依赖性的软件包
  --whatprovides    查询/验证提供一个依赖性的软件包
  --test                   仅做测试,不真正意义上的安装
  RPM安装程序包:
  rpm -i zsh-4.3.10-7.el6.x86_64.rpm
  常用组合选项:-ivh
  # rpm -ivh zsh-4.3.10-7.el6.x86_64.rpm
  Preparing...                ########################################### [100%]
  1:zsh                    ########################################### [100%]
  如果依赖于其它包:
  1、解决依赖关系
  2、忽略依赖关系
  能安装上,但有可能无法运行;
  --nodeps
  卸载程序包:
  #rpm -e zsh #只需哟包名,不需要版本号
  如果被其它包所依赖:
  1、将依赖于此包的所有包一并卸载
  2、忽略依赖关系
  能卸载,但依赖于此包程序包可能会运行不正常;
  --nodeps
  如果包的配置文件安装后曾经被改动过,卸载的时候,此文件将不会卸载,而是被重命名并保留,例如
  warning: /etc/zprofile saved as /etc/zprofile.rpmsave
  升级程序包:
  新版本替换老版本
  rpm [option] /path/to/package_file
  1、升级或安装
  -Uvh
  2、纯升级
  -Fvh
  3、--force:强制升级
  注意:不应该对内核执行升级操作,而是安装系统允许多内核并存
  查询操作:
  1、查询某包是否安装
  rpm  -q
  
  # rpm -q zsh
  zsh-4.3.10-7.el6.x86_64
  2、查询所有已经安装的包
  rpm -qa
  
  # rpm -qa
  mozilla-filesystem-1.9-5.1.el6.x86_64
  openssh-server-5.3p1-104.el6_6.1.x86_64
  basesystem-10.0-4.el6.noarch
  glib-networking-2.28.6.1-2.2.el6.x86_64
  createrepo-0.9.9-18.el6.noarch
  ............
  3、查询包的描述信息
  rpm -qi package_name
  # rpm -qi zsh
  Name        : zsh                          Relocations: (not relocatable)
  Version     : 4.3.10                            Vendor: CentOS
  Release     : 7.el6                         Build Date: Mon Nov 25 01:40:59 2013
  Install Date: Mon Jan 19 22:32:22 2015         Build Host: c6b9.bsys.dev.centos.org
  Group       : System Environment/Shells     Source RPM: zsh-4.3.10-7.el6.src.rpm
  Size        : 5009102                          License: BSD
  Signature   : RSA/SHA1, Mon Nov 25 03:33:46 2013, Key ID 0946fca2c105b9de
  Packager    : CentOS BuildSystem <http://bugs.centos.org>
  URL         : http://zsh.sunsite.dk/
  Summary     : A powerful interactive shell
  Description :
  The zsh shell is a command interpreter usable as an interactive login
  shell and as a shell script command processor.  Zsh resembles the ksh
  shell (the Korn shell), but includes many enhancements.  Zsh supports
  command line editing, built-in spelling correction, programmable
  command completion, shell functions (with autoloading), a history
  mechanism, and more.
  4、查询某包安装生成了哪些文件
  rpm -ql package_name
  
  # rpm -ql zsh
  /bin/zsh
  /etc/skel/.zshrc
  /etc/zlogin
  /etc/zlogout
  /etc/zprofile
  ...........
  (1)查询某包安装生成了哪些配置文件
  rpm -qc package_name      
  
  # rpm -qc zsh
  /etc/skel/.zshrc
  /etc/zlogin
  /etc/zlogout
  /etc/zprofile
  /etc/zshenv
  /etc/zshrc
  (2)查询某包安装生成了哪些帮助文件
  rpm -qd package_name   
  
  # rpm -qd zsh
  /usr/share/doc/zsh-4.3.10/BUGS
  /usr/share/doc/zsh-4.3.10/CONTRIBUTORS
  /usr/share/doc/zsh-4.3.10/FAQ
  /usr/share/doc/zsh-4.3.10/FEATURES
  /usr/share/doc/zsh-4.3.10/LICENCE
  /usr/share/doc/zsh-4.3.10/MACHINES
  ...........
  (3)查询程序包的相关脚本
  rpm -q --scripts package_name   
  
  # rpm -q --scripts zsh
  postinstall scriptlet (using /bin/sh):
  if [ ! -f /etc/shells ] ; then
  echo "/bin/zsh" > /etc/shells
  else
  grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
  fi
  ...........
  5、查询某文件时由哪个包安装生成的
  rpm -qf /path/to/some_file
  校验:
  用于检查包安装生成的文件属性是否发生变化
  rpm -V package_name

  file>  M Mode differs (includes permissions and file type)
  5 digest (formerly MD5 sum) differs
  D Device major/minor number mismatch
  L readLink(2) path mismatch
  U User ownership differs
  G Group ownership differs
  T mTime differs
  P caPabilities differ
  某属性无变化,显示为(空)
  RPM包来源合法性及完整性检验:
  前提:在当前系统上导入包的制作者的公钥
  导入:
  rpm --import /path/to/key_file
  # rpm -qa gpg-pubkey*
  显示所有已经导入的gpg格式的公钥
  # rpm -qi gpg-pubkey-NAME
  显示密钥的详细信息
  检查包:安装过程中会自动执行
  手动检查:
  rpm -K /path/to/package_file
  rpm --checksig /path/to/package_file
  不检查包完整性:
  rpm -K --nodigest
  不检查来源合法性:
  rpm -K --nosignature
  数据库重建:
  数据库目录:/var/lib/rpm
  重建:
  rpm --initdb:初始化
  如果事先没有库,会新建一个;如果有,则不新建;
  rpm --rebuilddb: 重建
  直接重建,覆盖原有的数据库

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-450470-1-1.html 上篇帖子: centos putty客户端秘钥 下篇帖子: centos6.5下安装mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表