yum源配置

当前位置: > CentOS入门 >
CentOS7下yum源的配置与使用
时间:2015-09-18 01:19来源:blog.51cto.com 作者:xjxiaolei 的BLOG 举报 点击:7617次

YUM:Yellowdog Updater Modified

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。(bing 词典)



yum可以检测软件间的依赖性,并提示用户解决,将发布的软件放到yum server,然后分析这些软件的依赖关系,然后将软件相关性记录成列表。当客户端有软件安装请求时,yum客户端在yum服务器上下载记录列表,然后通 过列表信息与本机rpm数据库已安装软件数据对比,明确软件的依赖关系,能够判断出那些软件需要安装。

列表信息保存在yum客户端的/var/cache/yum中,每次yum启动都会通过校验码与yum服务器同步更新列表信息。

使用yum需要有yum repositories,用来存放软件列表信息和软件包。yum repositories可以是http站点,ftp站点,本地站点。

路径格式:

   ftp://hostname/PATH/TO/REPO   REPO指repodata所在路径的父目录
     http://hostname/PATH/TO/REPO  
     file:///PATH/TO/REPO     

yum配置

 /etc/yum.conf 全局配置,对所有仓库都适用的配置

[root@localhost ~]# cat /etc/yum.conf
[main]

yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum

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

安装完成后是否保留软件包,0为不保留(默认为0),1为保留

keepcache=0

Debug 信息输出等级,范围为0-10,缺省为2

debuglevel=2

yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。

logfile=/var/log/yum.log

有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包

exactarch=1

允许更新陈旧的RPM包

obsoletes=1

是否启用插件,默认1为允许,0表示不允许。

plugins=1

允许保留多少个内核包

installonly_limit=5

bug管理

bugtracker_url=

指定一个软件包,yum会根据这个包判断你的发行版本,

默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。

distroverpkg=centos-release

/etc/yum.repos.d/*.repo 一个文件通常用于一个或一组功能相近或相关的仓库

[root@localhost yum.repos.d]# cat CentOS-Base.repo
[base]

[REPO_ID] 用于区别各个不同的repository,唯一性

name=CentOS-$releasever - Base name,

name 是对repository的描述,支持像 releasever basearch这样的变量;

mirrorlist=http://mirrorlist.centos.org/?release=releasever&arch=basearch&repo=os&infra=$infra

mirrorlist指定一个镜像服务器的地址列表,将 releasever basearch替换成自己对应的版本和架构,

例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。

baseurl=

enabled = 1

这个选项表示这个repo中定义的源是启用的,0为禁用

gpgcheck=1

启用gpg的校验,确定rpm包的来源安全和完整性 0为禁止

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

定义用于校验的gpg密钥

cost=

cost开销,默认是1000,开销越大,优先使用级越低。

…..

注意:[REPO_ID]中不能有空格,否则报错

定义仓库指向可用变量:
$releasever: 引用当前系统的主版本号;从[main]部分的distroverpkg获取;

 $basearch: 当前系统的基本架构;i386, i486, i586, i686: i386

例如:http://mirror.centos.org/centos/$releasever/os/$basearch/

示例:配置aliyun的yum源
[root@localhost yum.repos.d]# vim CentOS-aliyun.repo
1 [aliyun]
2 name=CentOS-$releasever-aliyun
3 baseurl=http://mirrors.aliyun.com/centos/ releasever/os/ basearch/
4 enabled=1
5 gpgcheck=1
6 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#列出可用yum repository 发现阿里云已经在列表中
[root@localhost yum.repos.d]# yum repolist enabled
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.skyshe.cn
* extras: mirrors.cqu.edu.cn
* updates: mirrors.pubyun.com
repo id repo name status
aliyun CentOS-7-aliyun 8,652
base/7/x86_64 CentOS-7 - Base 8,652
extras/7/x86_64 CentOS-7 - Extras 181
updates/7/x86_64 CentOS-7 - Updates 1,480

yum命令:

语法:yum [options] [command] [package …]

选项:

安装: install package1 [package2] […]

[root@localhost ~]# yum install php

卸载:remove | erase package1 [package2] […] 卸载指定包

[root@localhost ~]# yum remove php

       autoremove [package1] [...]   同时卸载相关依赖包

升级:update [package1] [package2] […]

      check-update 检测已安装包的更新信息

检查已安装包的可用更新

[root@localhost ~]# yum check-update
……
NetworkManager.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates
NetworkManager-adsl.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates
NetworkManager-libnm.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates
NetworkManager-tui.x86_64 1:1.0.0-16.git20150121.b4ea599c.el7_1 updates
bind-libs-lite.x86_64 32:9.9.4-18.el7_1.5 updates
……

更新指定包

[root@localhost ~]# yum update sqlite

更新全部包

[root@localhost ~]# yum update

重新安装:reinstall package1 [package2] […]

重新安装相同版本的软件包

[root@localhost ~]# yum reinstall net-tools

降级安装:downgrade package1 [package2] […]

[root@localhost packages]# yum downgrade package

查询:info […]

查询资源库中指定包的相关信息

[root@localhost ~]# yum info php
……
Available Packages
Name : php
Arch : x86_64
Version : 5.4.16
Release : 36.el7_1
Size : 1.4 M
Repo : updates/7/x86_64
Summary : PHP scripting language for creating dynamic web sites
……

查询资源库中所有可以安装或更新的rpm包的信息

[root@localhost ~]# yum info

查询资源库中所有可以更新的rpm包的信息

[root@localhost ~]# yum info updates

查询已经安装的所有的rpm包的信息

[root@localhost ~]# yum info installed

列出已经安装的但是不包含在资源库中的rpm包的信息

[root@localhost ~]# yum info extras

rpm包列表:list […]

列出资源库中所有可以安装或更新的rpm包

[root@localhost ~]# yum list

列出资源库中特定的可以安装或更新以及已经安装的rpm包

[root@localhost ~]# yum list zip
[root@localhost ~]# yum list zip*

注:可以在rpm包名中使用匹配符,如列出所有以zip开头的rpm包

列出资源库中所有可以更新的rpm包

[root@localhost ~]# yum list updates

列出已经安装的所有的rpm包

[root@localhost ~]# yum list installed

列出已经安装的但是不包含在资源库中的rpm包

[root@localhost ~]# yum list extras

搜索rpm包:search string1 [string2] […]

搜索匹配特定字符的rpm包

search KEYWORD

[root@localhost ~]# yum search php

注:在rpm包名,包描述等中搜索

搜索有包含特定文件名的rpm包

provides /PATH/TO/SOMEFILE

[root@localhost ~]# yum provides php

清理缓存:clean [ packages | headers | metadata | expire-cache | rpmdb | plugins | all ]

清除暂存中rpm包文件

[root@localhost ~]# yum clean packages

清除暂存中rpm头文件

[root@localhost ~]# yum clean headers

清除暂存中包文件

[root@localhost ~]# yum clean metadata

清除暂存中过期数据

[root@localhost ~]# yum clean expire-cache

创建缓存:makecache [fast]

[root@localhost packages]# yum makecache

包组:groups […]

包组列表

[root@localhost packages]# yum grouplist
…….
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Scientific Support
Security Tools

包组信息

[root@localhost packages]# yum group info “Security Tools”

安装包组

[root@localhost packages]# yum group install “Security Tools”

卸载包组

[root@localhost packages]# yum group remove “Security Tools”

仓库命令:

repolist [all|enabled|disabled] 列出全部/可用/不可用仓库

[root@localhost ~]# yum repolist enabled
……
repo id repo name status
aliyun/7/x86_64 CentOS-7-aliyun 8,652
base/7/x86_64 CentOS-7 - Base 8,652
extras/7/x86_64 CentOS-7 - Extras 181
updates/7/x86_64 CentOS-7 - Updates 1,480
repolist: 18,965

repoinfo [all|enabled|disabled] 列出全部/可用/不可用仓库信息

[root@localhost ~]# yum repoinfo enabled
……
Repo-id : aliyun/7/x86_64
Repo-name : CentOS-7-aliyun
Repo-revision: 1427842153
Repo-updated : Wed Apr 1 06:50:46 2015
Repo-pkgs : 8,652
Repo-size : 6.3 G
Repo-baseurl : http://mirrors.aliyun.com/centos/7/os/x86_64/
Repo-expire : 21,600 second(s) (last: Thu Sep 17 09:22:44 2015)
Repo-filename: /etc/yum.repos.d/CentOS-aliyun.repo
……

使用光盘作为本地库:

1 挂载光盘至某目录

2 定义仓库,使用file:///指明访问路径

示例:

挂载光盘

[root@localhost cdrom]# mount -r /dev/cdrom /mnt/cdrom/

定义仓库

[root@localhost yum.repos.d]# vim centos-local-ISO.repo
[centos7-ISO]
name=centos-local-iso
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
cost=100

查看可用repository

root@localhost yum.repos.d]# yum repolist enabled
……
repo id repo name status
centos7-ISO centos-local-iso 325
aliyun/7/x86_64 CentOS-7-aliyun 8,652
……

创建本地仓库:
1 安装createrepo工具

[root@localhost ~]# yum install createrepo

2  建立repository资源,建立header文件

createrepo /PATH/TO/RPMFILES/

[root@localhost ~]# createrepo packages/
Spawning worker 0 with 2 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

生成repodata文件

[root@localhost ~]# ls packages/
2048-cli-0.9-4.git20141214.723738c.el7.x86_64.rpm repodata
openstack-ceilometer-alarm-2014.2.2-1.fc22.noarch.rpm

 3 可以在/etc/yum.repos.d目录下定义本地repository

[root@localhost yum.repos.d]# cat local.repo
[localrepo]
name=local-repo
baseurl=file:///root/packages
gpgcheck=0
enabled=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值