yum应用

yum历史:  yellowdog update  modifier的缩写

好处之一:可以自行解决linux下程序安装时的依赖关系。

yum是 c/s架构


文件服务的服务器:ftp http NFS 本地文件

yum 通过一个配置文件可以获取多个yum repo 的位置

   yum repo   数据:  程序包

yum      --------   yum repo   元数据 : repodata

repodata yum repo createrepo

yum 相对于rpm来说:

rpm为基础包管理器

yum则是rpm的前端工具

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

    http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/

http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/(试验教室仓库)

yum 命令行工具:

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

有两部分组成:

主配置文件: /etc/yum.conf

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

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

directive(指令)=value(值)

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

[main]提供公共配置 


各仓库配置

[repositoryid]

#对于当前系统的yum来讲,此repositoryid用于唯一标识此repository指向,必须唯一.

name=

#当前仓库描述信息

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

#指明repository的访问路径,通常为一个文件服务器上输出的某repository。(指向多个路径时:可以有多个但是:从第二行起,要空格,不要顶格写)

        (mirrorlist效果和baseurl效果相似,不可以公用。mirrorlist可分析开销选择,选最小开销的)


url:

ftp 服务

ftp://SERVER/PATH/TO/REPOSITORY(repodata的父目录)

http 服务

http://SERVER/PATH/TO/REPOSITORY(repodata的父目录)

nfs服务

nft://SERVER/PATH/TO/REPOSITORY(repodata的父目录)

本地目录

file:///PATH /TO /REPOSITORY(repodata的父目录)


enabled={1|0}

此仓库是否可被使用

gpgcheck={1|0}

是否对程序包做校验

gpgkey=url://path/to/keyfile

指明gpgkey文件路径(如果设置了gpgcheck=1.需要设置这项,不然无法检测)

cost=#

指明当前repositor的访问开销。默认1000(优先级)

教室环境可用仓库:

DVD1:http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/

DVD2:http://172.16.0.1/centos/6/extras/x86_64

epel:http://172.16.0.1/fedora-epel/6/x86_64


        新建仓库缓存路径    /var/cache/yum/


yum 命令

command is one of:

        * install package1 [package2] [...]

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

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2] [...]

        *  distribution-synchronization [package1] [pack- age2] [...]

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

        * list [...]

        * info [...]

        *  provides  |  whatprovides  feature1  feature2] [...]

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

        * makecache

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

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

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        * search string1 [string2] [...]

        * shell [filename]

        * resolvedep dep1 [dep2] [...]

        * 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]

        * version [ all | installed | available |  group-*| nogroups* | grouplist | groupinfo ]

        * history   [info|list|packages-list|packages-

       info|summary|addon-info|redo|undo|roll-

       back|new|sync|stats]

        * load-transaction [txfile]

        * check

        * help [command]

    仓库管理:

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

    repolist [all|enabled|disabled]

    缓存管理:

    yum clean:清理缓存

     clean  [  packages(包)| metadata(元数据) | expire-cache (过期缓存)| rpmdb(数据库) | plugins (插件)| all ]

    makecache:缓存创建

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

    程序包查看:

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

    yum list{available(可安装为安装)|updates(可升级)|installed|extras(未包含在仓库中的)

    |obsoletes(可被废弃)|recent(刚加入仓库的)} [glob_exp1] [...]

    查看组:

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

    程序包安装:

    yum install pachage1 [pachage2][...]

    只需要包名

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

    安装指定版本 

        yum install PACKAGE-VERSION(版本名)(如果还有依赖关系。默认都安装最新的版本,不然都需要指定新版本) 

    覆盖安装(重新安装)

    yum  reinstall package1 [package2][...]

    程序包升级

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

    程序包降级

    yum downgrade package1 [package2][...]


    检查有哪些升级可用:

    yum check-update(需要配置升级路径,不然无法使用,依托于配置文件)


    卸载:yum 

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


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

    查询:

    1.查询程序相关简要信息

    yum info [...]

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

        yum search KEYWORD 

    3.查询指定文件由哪个程序安装生成:

    yum provides|whatprovides /PATH/TO/SOMEFILE

    安装本地程序包文件:

    yum localinstall rpmfile1 [rpmfile2][...](R7版本中也忽视了。直接 install就可以了)

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

        yum localupdate(升级) 

    包组管理:

        需要引用有空格的组名是用“”  不然会解释成多个组

    列出所有包组详情:yum grouplist 

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

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

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

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


    R7 版本中可直接用 install ,remove或update来管理包组。

     @GROUP_NAME(在组名前+@.组名中有空格+"GROUP_NAME")

     以安装包组“Server Platform Development"为例:

     yum install @"Server Platform Development"


    yum 命令的可用选项

    -y : 自动回答为:yes

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

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

    --nogpgcheck  禁止做包校验


yum有内置变量:用于保存当前平台的相关信息。

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

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

(2)$arch :平台

i386  i486

(3)$basharch:基础平台,例如i686,i586,及i386的基础平台同为i386

(4)$YUM0-$YUM9

例如:

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

当前的系统为 CentOS 6.6 x86_64

$releasever :6  $basearch:x86_64

%%%%%%%% (链接法则: 6.0 6.1   ln 6 6.0)%%%%%%%%%


利用光盘使用yum 

1:挂载光盘:mount -o ro -t iso9660 /dev/dvd /media/repo

    (如果mount-point(/media/repo)没有要先创建:此目录下不要创建别的文件了,不然挂载后读不出来)

2:创建yum仓库: 先移除原来的yum仓库

进入 /etc/yum.repos.d     mv test.repo  test.repo.bak

3: yum repolist 查看是否移除

4:重新配置 yum仓库(vim test.repo   这里后缀名必须  .repo路径要在

        /etc/yum.repos.d下面)

#cd /etc/yum.repos.d

# vim sr0.repo

[dvdrepo]([repositoryid]是唯一的重名,读取会出错)

name=CentOS 6.6 X86_64 dvd1(这个是相关的描述信息便于查找理解)

baseurl=file:///media/repo(///追后一个/表示路径)

enabled=1(是否可以加载)

gpgcheck=0(是否校验)

5.测试: 

# yum repolist(查看是否建仓成功)

# yum install -y php(查看是否仓库可以用)

自己创建yum仓库:

    (1)基于发行版安装树安装createrepo 程序(这个命令作用:创建repodata元数据)

        #yum install createrepo

    (2)创建文件用于存放软件包文件

        #mkdir -pv /var/yum/xen

    (3)安装ftp 服务用于获取文件存放并存放到/var/yum/xen下

        #yum install lftp(安装服务)

        #cd /var/yum/xen

        #lftp 172.16.0.1/pub/Sources/6.x86_64/xen-4.1/(连接到ftp服务器)

        #mget *.rpm(下载所有的关于xen的.rpm包)

    (4)基于刚才下载的文件构建yum仓库所需的repodata 元数据

        #createrepo /var/yum/xen

        (查看效果

        [root@localhost xen]# pwd

        /var/yum/xen

        [root@localhost xen]# ls                                 

        xen-ocaml-4.1.3-2.el6.x86_64.rpm

        repodata  )

    (5)配置本地文件连接到yum仓库

        #cd /etc/yum.repos.d

        #vim test.repo

        [xenlocal]

        name=xen loacl /var/yum/xen

        baseurl=file:///var/yum/xen

        gpgcheck=0

        enbaled=1

    (6)查看是否构建成功

        #yum repolist

        repo id                repo name                     status

        xenlocal               xen loacl /var/yum/xen                  41







你可能感兴趣的:(linux,服务器,update,配置文件,优先级)