频道栏目
首页 > 资讯 > Linux > 正文

程序包管理器

19-03-12        来源:[db:作者]  
收藏   我要投稿

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

安装: -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 
相关TAG标签
上一篇:maxcompute2.0复杂数据类型之array-xx暖忆的博客-51CTO博客
下一篇:【OCP题库-12c】最新CUUGOCP071考试题库(70题)-cto_5359的博客-51CTO博客
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站