yum

yum:php

Yellowdog Updater Modifiedlinux

Yellowdog是一款发行版linux,使用rpm做为默认的程序包管理工具web


URL: yum定位软件仓库及仓库中程序包文件的主要标识方式;shell

schema://[username@]hostname[:port][/PATH/TO/DOCUMENT][parameters][method]centos

web站点:缓存

http/https服务器

http://www.163.com网络


yum是C/S架构的模型,其中服务器也称为软件仓库(yum repository),客户端须要书写URL以指定服务器及程序包路径;架构


在服务器上,软件仓库其实就是一个目录,在目录中包含了程序包文件及元数据文件;app

元数据文件统一的存放于repodata的目录中;也能够说,repodata目录所在的路径即为软件仓库的路径;


createrepo命令:

createrepo - Create repomd (xml-rpm-metadata) repository

createrepo [options] <directory>

<directory>:存放程序包的目录


客户机的使用:

yum程序包

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

ini风格的配置信息模式:分段式配置内容

[repositoryid]

statements


注意:全部的配置语句,其生效的范围是从一个[]开始,到下一个[]结束

例如:

[repo1]

statements 


[repo2]

statements


注意:

1.repositoryid必须全局惟一

2.repositoryid不能包括除了.和_以外的任何特殊字符,能够包含字母和数字,字母严格区分大小写机制;


/etc/yum.conf文件的内容

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release


想要更加全面的信息,能够使用man 5 yum.conf获取;


# PUT YOUR REPOS HERE OR IN separate files named file.repo in /etc/yum.repos.d

用户自定义的repository的指向信息,能够写在主配置文件中;也能够将用户自定义的repository的指向信息,以.repo为文件后缀名,而且存放于/etc/yum.repos.d目录中;

主配置文件:

/etc/yum.conf

只提供yum仓库指向信息的公共配置内容;

注意:该文件通常状况下,不进行任何修改;

片断配置文件:

/etc/yum.repos.d/*.repo

每个以.repo为后缀名的文件,即为一个仓库文件;这样的每一个文件中能够配置指向一个或多个yum仓库;


yum程序在查找yum仓库的时候,根据这些配置文件来查找的;每一次可能会找到多个yum仓库,从全部能够使用的仓库中查找最新版本的程序包并缓存到本地进行安装,升级等操做;


同类的多个仓库被称为镜像;只要有一个可用便可;

不一样类的仓库也能够同时存在多个,yum能够同时使用这些仓库;


.repo文件该如何定义:

[repositoryid]

name=Full name of repository

baseurl=schema1://hostname/PATH/TO/REPODATA

schema2://hostname/PATH/TO/REPODATA

schema3://hostname/PATH/TO/REPODATA

schema4://hostname/PATH/TO/REPODATA

schema:

http[s]、ftp、nfs:网络服务器指向

file:本地服务器指向

#mirrorlist=mirror_url

enabled={0|1},0表示禁用此仓库指向,1表示启用;若是没有enabled语句,默认为启用状态;

gpgcheck={0|1},0表示不进行程序包认证,1表示认证;若是为1,须要指定认证所须要的公钥文件,须要使用gpgkey语句;

gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY_FILE

例子:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever


failovermethod={roundrobin|priority}

故障倒换方法:

roundrobin:随机查找,默认的方法;

priority:按照顺序依次选择

enablegroups={1|0}

cost=num,默认全部仓库的开销值都是1000;


通常的repo指向内容:

[repoid]

name=

baseurl=

#mirrorlist=

enbaled=1

gpgcheck=0

#gpgkey=


yum命令的用法:

yum - Yellowdog Updater Modified

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

[options]:

-y, --assumeyes:对于yum执行过程当中与用户交互的问题,所有以yes回答

-q, --quiet:安静模式,在某一次yum执行过程当中,没有任何信息输出到stdout;

--enablerepo=repoidglob

--disablerepo=repoidglob

在某一次yum执行过程当中明确的规定启用或禁用某个repository指向;在使用了这样的选项以后,仓库指向文件中的enabled语句的做用将失效;

--noplugins:

在某一次yum执行过程当中,明确指出不使用任何插件;

--nogpgcheck:

在某一次yum执行过程当中,明确指出不验证程序包完整性,在仓库指向文件中的gpgcheck=1语句会失效;


[command]

command is one of:

        * install package1 [package2] [...]

        安装程序包

        注意:

        1.若是只是给出程序包名称,yum搜索全部仓库,并找到最新版本缓存安装;

        2.若是给出程序包的名称及版本,则查找安装指定版本的程序包;

        3.若是给出的程序包是完整的程序包名,则只是查找某一个程序包;

        4.程序包名称能够使用globbing,(* ? [] [^])


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

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

        * check-update

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

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

        * downgrade package1 [package2] [...]

        程序包升级或降级:

        程序包不一样版本之间的更迭;


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

        卸载程序包:


        * list [...]

        yum list LIST OPTIONS

        LIST OPTIONS:

        all: 显示全部的程序包,包括已经安装的和还没有安装但可用的;

        注意:

        anaconda:CentOS系统的安装器,在安装操做系统的时候一并安装的程序包;

        installed:显示全部已经安装的程序包;

        available:显示全部还没有安装但能够安装的程序包;

        updates:显示全部能够升级更新的程序包;


        * info [...]

        yum info LIST OPTIONS

        LIST OPTIONS:

        all: 显示全部的程序包,包括已经安装的和还没有安装但可用的;

        注意:

        anaconda:CentOS系统的安装器,在安装操做系统的时候一并安装的程序包;

        installed:显示全部已经安装的程序包;

        available:显示全部还没有安装但能够安装的程序包;

        updates:显示全部能够升级更新的程序包;


        name[globbing]


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

        给yum提供一个交互式命令的操做界面


        * localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)

          实现本地程序包安装,即:不依赖于软件仓库,直接对rpm格式包文件进行操做;

          这两个命令已经被停用,使用install和update取代;


        * reinstall package1 [package2] [...]

        从新安装


        * deplist package1 [package2] [...]

        显示每一个程序包全部的依赖关系;


        * repolist [all|enabled|disabled]

        列表显示yum仓库的元数据信息

        在没有给出后面的参数的时候,默认为enabled;


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


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

       info|redo|undo|rollback|new|sync|stats]

        查看yum事务的历史;

        安装、升级、卸载等操做的时候,yum会开启事务;


        * load-transaction [txfile]

        从新启动已经中止的事务;


        * check


        * help [command]


CentOS7中的yum命令:

程序包组的管理命令:

* groups [...]

groups {install | remove | list | info | update}


别名:groupinstall groupremove grouplist groupinfo groupudpate


* autoremove [package1] [...]

自动卸载:


* repoinfo [all|enabled|disabled]


经常使用的第三方yum仓库,Fedora EPEL,

到官方站点或镜像站点中,下载epel-release程序包,而且使用rpm命令安装至对应的Linux发行版本,在/etc/yum.repos.d目录中,会多出一个epel.repo的文件;更新repolist便可使用;


要求Linux虚拟机可以链接互联网;


yum的repo配置文件中的变量:

$releasever:当前操做系统的发行版本的主版本号;

如:CentOS 7.2-1511,其发行版本的主版本号是7

CentOS 6.7,其发行版本的主版本号是6


$basearch:当前计算机所使用的基础平台架构类型;

如:Intel兼容机

i686

x86_64

apple计算机设备

ppc

ppc64


$arch:平台架构类型

$YUM0~$YUM9:yum内置的由用户自定义的10个变量;


为何要用这些变量?

服务器(repository, 仓库)必须可以提供全部的常有发行版本及平台相关的程序包;可是服务器没法预测任何一个客户端具体的版本使用状况;


因此让用户自行选择:


.repo

baseurl=https://mirrors.aliyun.com/epel/7/x86_64


建立本地yum仓库:

createrepo /PATH/TO/PACKAGES


yum-config-manager --add-repo=URL

相关文章
相关标签/搜索