YUM程序包管理


1.YUM产生原因:

Linux哲学思想:组合单一功能的小工具,完成大任务。

造成的结果就是软件之间有依赖关系,给软件的安装和管理造成了麻烦。

yum: 自行解决依赖关系

2.YUM原理:

C/S架构:

文件服务的服务器:

ftp服务

http服务

本地文件目录

NFS服务

3.YUM与RPM关系:

rpm为基础包管理器

yum则是rpm的前端工具

仓库指向的路径:repodata目录所在的父目录

4.YUM配置文件及命令:

(1)配置文件:指向仓库的位置以及相关的各种配置信息;每个yum命令行可以同时指向多个仓库,仓库间可以优先级等相关的配置;

   yum有内置变量,用于保存当前平台的相信息;

    (1) $raleasever: 当前OS发行版的主版本号;

    例如,对CentOS 6.6 x86_64,主版本号为6;

    (2) $arch:平台

    i386, i486

    (3) $basearch: 基础平台, 例如i686, i586, i486以及i386的基础平台同为i386;

    (4) $YUM0-$YUM9

    例如:

    baseurl=http://repo.magedu.com/centos/$releasever/$basearch

    当前系统为CentOS 6.6 x86_64

    http://repo.magedu.com/centos/6/x86_64

主配置文件:为各仓库指向提供公共配置文件;

/etc/yum.conf

各仓库的定义:/etc/yum.repos.d/*.repo

directive=VALUE

Note: 文件以.repo结尾;每个repo配置文件中可以配置一至多个仓库;

[main]:提供公共配置信息

各仓库配置文件

[repositoryid]

# 对于当前系统的yum来讲,此repositoryid用于惟一标识此repository指向,因此,其必须惟一【不能包含数字及特殊字符】;

name=

# 当前仓库描述信息;

baseurl=url://path/to/repository/

# 指明repository的访问路径;通常为一个文件服务器上输出的某repository。与repodata位于同一路径。

ftp服务

ftp://SERVER/PATH/TO/REPOSITORY

http服务

http://SERVER/PATH/TO/REPOSITORY

本地目录:

file:///PATH/TO/REPOSTIROY

enabled={1|0}

此仓库是否可被使用

gpgcheck={1|0}

是否对程序包做校验

gpgkey=url://path/to/keyfile【依赖于gpgcheck】

指明gpgkey文件路径;

cost=#

指明当前repository的访问开销,默认为1000;

(2)yum命令:

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

   仓库管理:

    repolist: 列出已经配置的所有可用仓库

    repolist [all|enabled|disabled]

   缓存管理:

    clean:清理缓存

    clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

    makecache: 缓存创建

    自动连接至每一个可用仓库,下载其无数据,将其创建为缓存;

   程序包查看:

    yum list [all | glob_exp1] [glob_exp2] [...]

    yum list {available|updates|installed|extras|obsoletes} [glob_exp1] [...]

    grouplist [hidden] [groupwildcard] [...]

   程序包安装:

    install package1 [package2] [...]

    Note: 只需要提供包名;

    如果某包有在不同仓库中有多个不同版本,默认会安装最新版本;

    如果要安装指定版本:install PACKAGE-VERSION ...

   重新安装(覆盖安装)

    reinstall package1 [package2] [...]

   程序包升级:

    update [package1] [package2] [...]

   程序包降级:

    downgrade package1 [package2] [...]

   检查有哪些升级可用:

    check-update

   卸载:

    remove | erase package1 [package2] [...]

    所有依赖于正卸载的程序包的程序包会被一并卸载;

   查询:

    查询程序的相关简要信息:info PACKAGE ...

    在包名和sumary信息中搜索指定的关键字:search KEYWORD ...

    查询指定文件由哪个程序包安装生成:provides|whatprovides /PATH/TO/SOMEFILE

   安装或升级本地的程序包文件:

    localinstall rpmfile1 [rpmfile2] [...]

    用于安装仓库中并不存在的程序包文件,这些程序包有可能又依赖于仓库中的某些程序包;

    localupdate rpmfile1 [rpmfile2] [...]

   包组管理:

    列出所有包组:grouplist

    显示指定包组详情:groupinfo group1 [...]

    安装:groupinstall group1 [group2] [...]

    卸载:groupremove group1 [group2] [...]

    升级:groupupdate group1 [group2] [...]

    Note: 可直接用install、remove或update来管理包组:

    @GROUP_NAME

    yum install @"Server Platform Development"

   yum命令的可用选项:

    -y: 自动回答为“yes”

    --disablerepo=: 临时禁用在配置文件中配置并启用的某repository;

    --enablerepo=:临时启用指定的某repo;

  --nogpgcheck: 禁止做包校验;

    (3)如何使用发行版光盘作为yum repository

    ① 挂载光盘到指定挂载点,如/media/cdrom

    ② 新建yum repo配置文件,类似如下所示:

[dvdbase]

name=CentOS 6.6 X86_64 on dvd1

baseurl=file:///media/cdrom

gpgcheck=0

enabled=1  

    (4)手动创建yum仓库:

    ①在基于发行版安装树安装createrepo程序包;

    ②确定repository输出方式:

    本地输出:提供一个放置rpm包的本地路径;

    网络输出:提供一个文件服务器,配置好ftp服务或http服务;

    ftp服务:

    安装程序包: vsftpd

    文件存放路径:/var/ftp/pub

    启动服务:service vsftpd start

    http服务:

    安装程序包:httpd

    文件存放路径:/var/www/html

    启动服务:service httpd start

    【!!!注意:确保防火墙服务关闭;】

    service iptable stop

    ③在准备好的目录中放置rpm程序包文件

    ④对此目录运行createrepo命令即可


你可能感兴趣的:(yum,YUM命令,程序包)