CentOS程序包管理详解(4)

数据库管理:
    rpmdb命令:
    /var/lib/rpm
        --initdb:初始化数据库
        --rebuilddb:从已安装软件包包头重建数据库反向列表

程序包管理的前端工具:
RHEL/CentOS系列发行版Linux中,yum和dnf;

yum命令行工具:
    Yellow dog Updater Modifier

软件仓库:Package Repository
    在软件仓库中,存放有大量的rpm程序包,将所有的rpm程序包的属性信息提取出来,保存于xml格式的文档之中;

利用URL标记并定位软件仓库的位置,并且可以直接读取和缓存软件仓库中事先创建的xml文档的内容到本地;
    URL:统一资源定位符;
        schema://[username@]hostname[:port][/PATH/TO/RESOURCE][parameters][flag]
            schema:
                http
                ftp
                file
                ...

yum是C/S架构的模型,服务器端其实就是软件仓库,客户端需要在指定的配置文件中填写正确的URL,以能够通过正确的协议访问到软件仓库中的各程序包;
        在服务器上,软件仓库其实就是一个目录,在目录中包含了程序包文件及与这些程序包对应的元数据文件;所有的元数据文件统一放置于名为"repodata"目录中;程序包的元数据通过createrepo命令来构建:

createrepo命令:
                createrepo - Create repomd (xml-rpm-metadata) repository
                createrepo [options] <directory>

在客户端上,使用配置文件到服务器的URL的指向;
            yum的主配置文件:/etc/yum.conf
            yum的片段配置文件:/etc/yum.repos.d/*.repo
                片段配置文件拥有ini风格的配置模式:即分段式配置内容;
                    1.使用"[Repositoryid]"唯一标识出软件仓库;
                    2.其他的配置信息都类似于变量的复制,即key=value;
                    3.在软件仓库的标记下面的所有的配置信息都针对其上面的仓库生效,直到遇到下一对"[]"为止;

每个片段配置文件中,都可以配置一个或多个仓库的指向;而且,yum程序在查找各个仓库的时候,每一次都可能会查找多个yum仓库,并且从所有的可以使用的仓库中选择所需程序包的最新版本并缓存到本地进行安装、升级等操作;
                    同一个repoid下的多个仓库被称为镜像,只有一个仓库会被使用;
                    多个不同repoid的仓库,可以同时被使用;

.repo文件的内容格式:
[repositoryid]
name=Full name of Repository
baseurl=schema1://hostname/PATH
schema2://hostname/PATH
schema3://hostname/PATH
schema4://hostname/PATH
...
enabled={0|1}
gpgcheck={0|1}
gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY
如:gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
failovermethod={roundrobin|priority}
cost=NUMBER

.repo文件的格式示例:
[myrepo]
name=repository on localhost cdrom
baseurl=
#mirrorlist=
enabled=1
gpgcheck=0
#gpgkey=

yum命令行工具:
yum - Yellowdog Updater Modified
command is one of:
•install package1 [package2] [...]
•update [package1] [package2] [...]
•update-to [package1] [package2] [...]
•update-minimal [package1] [package2] [...]
•check-update
•upgrade [package1] [package2] [...]
•upgrade-to [package1] [package2] [...]
•distribution-synchronization [package1] [package2] [...]
•remove | erase package1 [package2] [...]
•autoremove [package1] [...]
•list [...]
•info [...]
•provides | whatprovides feature1 [feature2] [...]
•clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
•makecache [fast]
•groups [...]
•search string1 [string2] [...]
•shell [filename]
•resolvedep dep1 [dep2] [...]
(maintained for legacy reasons only - use repoquery or yum provides)
•localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
•localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
•reinstall package1 [package2] [...]
•downgrade package1 [package2] [...]
•deplist package1 [package2] [...]
•repolist [all|enabled|disabled]
•repoinfo [all|enabled|disabled]
•repository-packages <enabled-repoid> <install|remove|remove-or-rein‐
stall|remove-or-distribution-synchronization> [package2] [...]
•version [ all | installed | available | group- | nogroups | grouplist |
groupinfo ]
•history [info|list|packages-list|packages-info|summary|addon-
info|redo|undo|rollback|new|sync|stats]
•load-transaction [txfile]
•updateinfo [summary | list | info | remove-pkgs-ts | exclude-updates |
exclude-all | check-running-kernel]
•fssnapshot [summary | list | have-space | create | delete]
•fs [filters | refilter | refilter-cleanup | du]
•check

•help [command]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/17805.html