软件包管理

程序组成部分:

二进制程序

配置文件

帮助文件

软件包管理器的核心功能:

制作软件包;

安装、卸载、升级、查询、校验;

rpm 和 yum

rpm命名:

包:组成部分

主包:

bind-9.7.1-1.el5.i586.rpm

子包:

bind-libs-9.7.1-1.el5.i586.rpm

bind-utils-9.7.1-1.el5.i586.rpm

包名格式:

name-version-release.arch.rpm

bind-major.minor.release-release.arch.rpm

yum是解决rpm依赖关系的前端工具

rpm

安装

rpm -i /PATH/TO/PACKAGE_FILE

-h: 以#显示进度;每个#表示2%; 

-v: 显示详细过程

-vv: 更详细的过程

rpm -ivh /PATH/TO/PACKAGE_FILE

--nodeps: 忽略依赖关系;

--replacepkgs: 重新安装,替换原有安装;

--force: 强行安装,可以实现重装或降级;

查询

rpm -q PACKAGE_NAME: 查询指定的包是否已经安装

linux rpm和yum_rpm

rpm -qa : 查询已经安装的所有包

rpm -qi PACKAGE_NAME: 查询指定包的说明信息;

linux rpm和yum_rpm_02

rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;

linux rpm和yum_rpm_03

rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;

rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;

linux rpm和yum_linux_04

rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本

rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

linux rpm和yum_rpm_05

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;

rpm -qpi /PATH/TO/PACKAGE_FILE

rpm -qpl 

升级

rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;

rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;

--oldpackage: 降级

卸载

rpm -e PACKAGE_NAME

--nodeps

linux rpm和yum_rpm_06

重建数据库

rpm

     --rebuilddb:重建数据组

 --initdb:初始化数据率

linux rpm和yum_linux_07

校验

rpm -V PACKAGE_NAME

检验来源合法性,及软件包完整性;

linux rpm和yum_rpm_08

加密类型:

对称:加密解密使用同一个密钥

公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;

单向:有加密无解密的加密方法;

rpm -K /PAPT/TO/PACKAGE_FILE

dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项

sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项

导入密钥文件:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

yum仓库中的元数据文件:

primary.xml.gz

每个RPM安装生成的文件列表;

filelists.xml.gz

当前仓库中所有RPM包的所有文件列表;

other.xml.gz

额外信息,RPM包的修改日志;

repomd.xml

记录的是上面三个文件的时间戳和校验和;

如何为yum定义repo文件

[Repo_ID]

name=Description

baseurl=

ftp://

http://

file:///

enabled={1|0}

gpgcheck={1|0}

gpgkey={1|0}

yum [options] [command] [package ...]

-y:自动回答为yes

--nogpgcheck

   list:列表

   all

   available:可用的,仓库中有单尚未安装

   installed:已经安装的

   updates:可用的升级

 clean:清理缓存

   [ packages | headers |metadate | dbcache |all ]

repolist:显示repo列表及其详细信息

enabled:默认

Disabled

install:安装

yum install PACKAGE_NAME

update:升级

update_to:升级为指定版本

remove|erase:卸载

info:查看详细信息

provides|whatprovides:查看指定文件或特性是由哪个包安装生成的

grouplist:可安装的组的列表

groupinfo:查看组详细信息

groupremove:卸载组

groupinstall:安装组

groupupdate:升级组

创建yum仓库

createrepo