站长资讯网
最全最丰富的资讯网站

程序包管理器

程序包管理器:
源代码 –> 目标二进制格式(二进制程序,库文件,配置文件,帮助文件)–>组织成为一个或有限几个“包”文件;
安装,升级,卸载,查询,校验

  安装: -ivh, --nodeps, --replacepkgs  卸载: -e, --nodeps  升级:-Uvh , -Fvh , --nodeps, --lodpackage  查询:-q, -qa , -qf , -qi , -qd , -qc ,-q --scripts,  -q --changlog, -q --provides, -q --requires  校验:-V        程序包管理器:                    debian : dpt, dpkg, ".deb"                  redhat: rpm                  S.U.S.E: rpm                    Gentoo: ports                  Archlinux:            源代码:name-VERSION.tar.gz                  VERSION:major.minor.release                rpm包命名格式:                       name-VERSION-release.arch.rpm                               VERSION:major.minor.release                               release.arch:rpm包的发行号                                       relae.os:2.ei7.i386.rpm                                       archetecture:i386,x64(amd64),ppc,noarch                                redis-3.0.2.targz -->   redis-3.0.2-1.centos7.x64.rpm            拆包: 主包和支包                      主包:name-VERSION-release.arch.rpm                      支包:name-function-VERSION-release.arch.rpm

前端工具:自动解决依赖关系;
yum:rhel系列系统上rpm包管理器的前端工具;
apt-get(apt-cache):deb包管理器的前端工具;
zypper:suse的rpm管理器的前端工具;
dnf:Fedord 22+ 系统上rpm包管理器的前端工具;


  程序包管理器:                  功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装,升级,卸载和查询等管理操作;            1.程序包的组成清单(每个程序包都单独实现);                      文件清单                      安装或卸载时运行的脚本              2.数据库(公共)                          程序包的名称和版本                          依赖关系                          功能说明                          安装生成的各文件的文件路径及校验码信息

rpm包的数据库
[root@Centos7ip11 ~]# ls /var/lib/rpm
Basenames db.002 Group Obsoletename Requirename Triggername
Conflictname
db.003 Installtid Packages Sha1header
__db.001 Dirnames Name Providename Sigmd5

获取程序包的途径:
1.系统发行版的光盘或官方的文件服务器(或镜像站点);
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirors.163.com

              2.项目的官方站点              3.第三方组织                          a.EPEL                          b.搜索引擎                                          https://pkgs.org/                                          http://www.rpmfind.net                                          http://rpm.pbone.net                  4.自动动手,    建议:检查其合法性              来源合法性              程序包的完整性

Centos系统上rpm命令管理程序包:
安装,升级,卸载,查询和校验,数据库维护

http://www.runoob.com/linux/linux-comm-rpm.html

安装: [root@Centos7ip11 ~]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm

                  rpm命令:                             选项:                                     安装:-i, --install                                   升级:-U,--update, -F,--freshen                                  卸载:-e,--erase                                  查询:-q,--query                                  校验:-V,--verify                                  数据库维护:--builddb,--initdb                                    -h: bash marks输出进度条;每个#表示2%的进度;                                  --test:测试安装,检查并报告依赖关系及冲突消息等;                                  --nodeps:忽略依赖关系;不建议;                                  --replacepkgs:重新安装                                    注意:rpm可以自带脚本;                                              四类: 都不执行 --noscripts                                                      preinstall:安装过程开始之前运行的脚本,%pre , --nopre                                                      postinstall:安装过程完成之后运行的脚本,%post , --nopost                                                      preuninstall:卸载过程真正开始执行之前运行的脚本,%preun , -- nopreun                                                      postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun                                                        --nosignature:不检查包签名信息,不检查来源合法性;                                                      --nodigest:不检查包完整性信息;

  升级:                            [root@Centos7ip11 ~]# rpm -Uvh zsh-5.0.2-28.el7.x86_64.rpm                           [root@Centos7ip11 ~]# rpm -Fvh zsh-5.0.2-28.el7.x86_64.rpm                    选项:                          -U : 升级或安装;                          -F:升级                                --oldpackage :降级;                              --force:强制升级;                注意:                  1.不要对内核做升级操作;linux支持多内核版本并存,因此,直接安装新版本内核;                  2.如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个牌子文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供;

      卸载:                选项:                      -e, --erase:卸载                      --allmatches:卸载所有匹配指定名称的程序包的各版本;                      --nodeps:忽略依赖关系                      --test:测试卸载,dry run模式

实例:
[root@Centos7ip11 ~]# rpm -q zsh
zsh-5.0.2-28.el7.x86_64
[root@Centos7ip11 ~]# rpm -e zsh


查询:
rpm {-q|–query} [select-options] [query-options]

          选项:            [select-options]                    -a, --all:查询所有已经安装过的包;                  -f FILE:查询指定的文件由哪个程序包安装生成;                  -p,--package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;                    --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供;                  --whatrequires  CAPABILITY:查询指定的CAPABILITY 被哪个包依赖;        [query-options]                           --changelog:查询rpm包的changlog;                          -l,--list:程序安装生成的所有文件列表;                          -i,--info:程序包相关的信息,版本号,大小,所属的包组,等;                          -c,--configfiles:查询指定的程序提供的配置文件;                          -d,--docfiles:查询指定的程序包提供的文档;                          -provides:列出指定的程序包提供的所有的CAPABILITY;                          -R,--requires:查询指定的程序包的依赖关系;                          --scripts:查看程序包自带的脚本片段;        用法:              -qi              -qf              -qc              -ql              -qd              -qpi              -qpl

实例:

                  [root@Centos7ip11 ~]# rpm -q --whatprovides bash                  bash-4.2.46-31.el7.x86_64                    [root@Centos7ip11 ~]# rpm -q --provides bash                  /bin/bash                  /bin/sh                  bash = 4.2.46-31.el7                  bash(x86-64) = 4.2.46-31.el7                  config(bash) = 4.2.46-31.el7

校验:
rpm -V|-y|–verify [verify-options]

                       5      MD5校验和                         S      文件大小                         L      符号连接                         T      修改时间                         D      设备                         U      用户                         G      组                         M      模式(包括许可和文件类型)

      包来源合法性验证和完整性验证:                            来源合法性验证:                          完整性验证:                    获取并导入信任的包制作者的密钥:                                  对于CentOS发行版来说:rpm --import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7                    验证:                          1.安装此组织签名的程序时,会自动执行验证;                          2.手动验证:rpm -k PACKAGE_FILE

数据库重建:
rpm管理器数据库路径:/var/lib/rpm/
查询操作:通过此处的数据库进行;

              rpm    {--initdb | --rebuilddb} {--dbpath DIRECTORY} [--root DIRECTORY]                  对这些模式唯一的选项是--dbpath                  --initab: 初始化数据库,当前无任何数据库可实现初始化创建一个新的;当前有时不执行任何操作;                  --rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;                        ~]# rpm --initdb --dbpath=/tmprpm 

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号