yum使用与总结
1、yum是什么
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
它基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。使用yum需要保持机器可以访问Internet或者访问自己构建的私有中心仓库(repository)。它可以是http 或ftp 站点,也可以是本地软件池。
yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf)。
yum 的配置文件分为两部分:main 和repository
main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
2、yum配置文件详解
2.1、/etc/yum.conf
yum.conf 文件一般位于/etc目录下,一般其中只包含main部分的配置选项。
# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
//yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认路径
keepcache=0
//安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2
//Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log
//yum 日志文件位置,用户可以到/var/log/yum.log 文件去查询过去所做的更新。
exactarch=1
//有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。
obsoletes=1
//这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
gpgcheck=1
// 有1和0两个选择,分别代表是否是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的。
plugins=1
//是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。
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
//指定一个软件包,yum 会根据这个包判断你的发行版本,默认是centos-release
,也可以是安装的任何针对自己发行版的rpm 包。
2.2、repo
讲repo之前,先说下linxu软件包的构成,一般包括base、extras、updates、epel等软件包。一般装完系统就会配置几个默认系统官方的yum 源,都是国外网站的,一般我们会使用国内的yun 源,比如163、阿里云等。
获取yun源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
关于repo的格式:
cat /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
说明:
CentOS-Base.repo :这个源文件的名字,这个根据实际的使用自己定义
[base]:repositry的名字,必须是独一无二的,不能和其他源文件冲突
name :对于[base]的具体描述,这个可以根据具体使用描述
baseurl:这个是非常重要的一环,表明了repositry的地址,支持ftp协议,http协议和file协议;
enabled=0/1:只有两个值,为1时表示repositry可以获取,0表示关闭
gpgcheck=0/1:有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的
gpgkey=url:后面接的是gpgkey的地址,如果前面定义gpgcheck=1的话。
3、yum常用命令
# yum clean all 清除缓存目录下的软件包
# yum makecache 更新缓存
# yum install xxx 安装xxx软件,软件包安装后默认缓存目录会清理掉,如果要让安装软件后不进行清理,可以把/etc/yum.cnf配置文件的keepcache设置为1,默认软件包就保存在缓存目录底下了。
# yum install --downloadonly --downloaddir=/soft java 下载某个软件包及相关依赖到/soft目录不进行安装
# yum info xxx 查看xxx软件的信息
# yum remove xxx 删除xxx软件包
# yum list xxx 列出xxx软件包,如果有@就表示已经安装该软件包
# yum list 列出yun源的所有软件包,包括安装与未安装的。
# yum clean 清除缓冲和就的包
# yum provides xxx 以xxx为关键字搜索包(提供的信息为关键字)
# yum search xxx 搜索软件包 (注:在rpm包名,包描述等中搜索)
# yum groupupdate xxx 更新xxx软件分组
# yum grouplist xxx
# yum groupremove xxx
# yum groupinfoinfo xxx
# yum update xxx 仅更新指定的软件命令:
# yum update 系统升级
# yum list available 列出所有升级源上的包;
# yum list updates 列出所有升级源上的可以更新包;
# yum list installed 列出已经安装的包;
# yun update kernel 升级内核;
# yum history 查看以前执行的yum命令
# yum history undo N 回滚yum history 中ID为N的命令
# yum history redo N 重做yum history 中ID为N的命令
4、构建私有yum仓库
4.1、用光盘镜像构建本地的yun仓库
1. 挂载光盘
#mount /dev/cdrom /mnt
#cd /etc/yum.repos.d
#vim dvd.repo
2.制作本地yum
# vi /etc/yum.repos.d/dvd.repo
[dvd]
enabled=1
name=dvd
baseurl=file:///mnt/
gpgcheck=0
#gpgkey = file:///mnt/RPM-GPG-KEY-redhat-release
3. 测试
#yum install vnc
4.2、用ftp构建本地化yum仓库
1、安装vsftpd并启动
# yum -y install vsftpd
# systemctl start vsftpd
2、下载nginx并创建ftp目录
# mkdir -p /var/ftp/nginx
#yum install --downloadonly --downloaddir=/var/ftp/nginx nginx
3、安装createrepo软件包
# yum -y install createrepo
4、创建能够让yum识别的软件包目录仓库
# cd /var/ftp/nginx
# createrepo -v ./
5、配置目标机器指向nginx yum仓库的repo文件
# cd /etc/yum.repos.d
# vim nginx.repo
[nginx]
name=nginx
baseurl=ftp://127.0.0.1/nginx
gpgcheck=0
enabled=1
# yum -y clean all
# yum makecache
# yum install nginx