yum常用命令,rpm下载不安装,配置国内yum源
文章来源: 陶老师运维笔记- 微信公众号
1. yum介绍
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
yum 主要功能是可方便的添加/删除/更新RPM 包,自动解决包的倚赖性问题,便于管理大量系统的更新问题。
yum源可以来源于多种文件服务器:
- http://
- https://
- ftp://
- file:// 本地文件
2. 常用yum命令
1. 安装软件:yum install S
2. 卸载软件:yum remove S
3. 检查依赖:yum deplist S
4. 软件信息:yum info S
5. 更新软件:yum update S
6. 检查更新:yum check-update
7. 软件列表:yum list installed
安装:
yum install 全部安装
yum install package 安装指定的安装包 package。
yum install package -y 直接安装不用询问是否安装。
yum groupinsall group 安装程序组 group。
更新:
yum update 全部更新。
yum update package 更新指定程序包 package。
yum check-update 检查可更新的程序。
yum upgrade package 升级指定程序包 package。
yum groupupdate group 升级程序组 group。
查找和显示:
yum repolist 查看(开启的)资源库。
yum repolist all 查看所有资源库。
yum search 使用 YUM 查找软件包。
yum search string 根据关键字 string 查找安装包。
yum info package 显示安装包信息 package。
yum info updates 列出更新信息。
yum info installed 列出安装包信息。
yum list 显示所有已经安装和可以安装的程序包。
yum list updates 列出所有可更新的包。
yum list installed 列出所有已经安装的包。
yum list extras 列出所有已安装,但是没有在 repo 里的包。
yum list package 显示指定程序包安装情况 package。
yum groupinfo group 显示程序组 group 信息。
删除程序:
yum remove package 删除程序包 package。
yum groupremove group 删除程序组 group。
yum deplist package 查看程序 package 依赖情况。
清除缓存:
yum clean packages 清除缓存目录下的软件包。
yum clean headers 清除缓存目录下的 headers。
yum clean oldheaders 清除缓存目录下旧的 headers。
yum clean/yum clean all 清除缓存目录下的软件包及旧的 headers。
导入rpm-gpg 文件:
rpm --import gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
3. yum配置文件
yum 的配置文件分为两部分:main 和repository
- main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 中。
- repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录。
3.1 yum.conf
yum.conf 文件一般位于/etc目录下,/etc/yum.conf一般其中只包含main部分的配置选项。
#yum的配置文件
$cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever #yum下载后的缓存目录
keepcache=0 #是否缓存,0为不缓存,1为缓存
debuglevel=2
logfile=/var/log/yum.log #yum的安装日志
exactarch=1
obsoletes=1
gpgcheck=1 #默认是否进行gpg校验,0为不校验,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
配置 | 说明 |
---|---|
cachedir | yum 缓存的目录,yum 在此存储下载的 rpm 包和数据库,一般是 /var/cache/yum。 |
debuglevel | 除错级别,0~10,默认是 2。 |
logfile yum | 的日志文件,默认是 /var/log/yum.log。 |
exactarch | 有两个选项 1 和 0,代表是否只升级和你安装软件包 cpu 体系一致的包,如果设为 1,则例如安装了一个 i386 的 rpm,则 yum 不会用 686 的包来升级。 |
gpgchkeck | 有 1 和 0 两个选项,分别代表是否是否进行 gpg 校验,如果没有这一项,默认是检查。 |
3.2 repository配置
yum的repository配置文件一般都放置在/etc/yum.repos.d/目录下。
示例1: influxdb.repo
cat /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
示例2: aliyun repo
[CentOS6-base] #源名称,必填
name=CentOS-$releasever-base #源描述,可以不填,但是会有提示
#baseurl=file:///misc/cd/ #本地的光盘文件,可以有多个地址。必填
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
gpgcheck=1 #是否开启校验,在yum.conf中已经定义它默认值为1
enabled=1 #是否禁用此yum源,默认为
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
#如果开启yum源包校验,则需要导入RPM公钥,此处只是在系统没有导入rpm公钥时候进行安装
#这里相当于rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[aliyun_epel] #这是Redhat的扩展包
name=ailiyun_yum_epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
gpgcheck=1
在配置yum源时候,最少只需要两行即可,[reponame]和baseurl:
配置 | 说明 |
---|---|
reponame | 写在[]中的[reponame],如自定义软件名称[influxdb]或[base],[contrib],[extras]等 |
$releasever | 代表发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。 |
$arch | cpu体系,如i686,athlon等 |
$basearch | cpu的基本体系组,如i686和athlon同属i386 |
4. 修改yum源为国内源
4.1 常用国内yum源
安装软件时用国外yum源网速通常不如国内源速度快,为加快安装速度可以改用国内yum源。
国内yum镜像站点:
网易源: http://mirrors.163.com/centos/6/os/x86_64/
清华大学: https://mirror.tuna.tsinghua.edu.cn/centos/6/os/x86_64/
阿里源: https://mirrors.aliyun.com/centos
浙江大学http://mirrors.zju.edu.cn/centos/6/os/x86_64/
4.2 修改为国内yum源
以下为修改CentOS的yum源步骤。
4.2.1 备份原repo文件
备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
4.2.2 下载国内repo文件
下载国内repo文件的CentOS-Base.repo 到/etc/yum.repos.d/
阿里云:
Centos5地址:
wget -O /etc/yum.repos.d/CentOS-5-aliyun.repo http://mirrors.aliyun.com/repo/Centos-5.repo
Centos6地址:
wget -O /etc/yum.repos.d/CentOS-6-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或
curl -o /etc/yum.repos.d/CentOS-6-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo
Centos7地址:
wget -O /etc/yum.repos.d/CentOS-7-aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo
163源:
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
4.2.3 生成缓存
清除原缓存,并生成新cache。
yum clean all
yum makecache
5. EPEL源
EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS等提供高质量软件包的项目。装上了 EPEL,即可yum安装很多以前需要编译安装的软件,如现在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安装更新。
5.1 安装EPEL
执行命令: yum install epel-release
$yum install epel-release
或者
http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
#检查安装
$rpm -q epel-release
$rpm -qa |grep epel -i
$ls -l /etc/yum.repos.d/
#导入key
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
重建缓存
yum makecache
5.2 安装EPEL阿里云源
删除原EPEL源:
#检查安装
$rpm -qa |grep epel -i
$rpm -q epel-release
#删除原官方rpel
rpm -e epel-release-6-8.noarch
安装阿里云repo:
#
epel(RHEL 5)
wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-5.repo
epel(RHEL 6)
wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-6.repo
epel(RHEL 7)
wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-7.repo
#检查
cat /etc/yum.repos.d/epel-aliyun.repo
修改priority:
修改/etc/yum.repos.d/epel.repo文件。
在[epel]最后添加一条属性 priority=11,意思是yum先去官方源查,官方没有再去epel的源找。
vi /etc/yum.repos.d/epel.repo
priority=11
重建缓存:
yum clean all
yum makecache
6. rpm包search
有时安装rpm时,找不到rpm包,可试下如下网站。
- http://rpm.pbone.net/
-
http://rpmfind.net/
rpm search
7.只下载RPM包而不安装
需要yum-plugin-downloadonly软件帮助实现。
7.1 安装yum-plugin-downloadonly:
$yum install yum-plugin-downloadonly
7.2 downloadonly使用
安装后,yum就多了两个命令参数,分别是:
--downloadonly //只下载 , --downloaddir=/path/to/dir //下载到指定目录
示例:下载redis软件包,但不安装。
$yum install --downloadonly --downloaddir=/root/ redis -y
...
Installed size: 1.6 M
Downloading Packages:
exiting because --downloadonly specified
参考
- teachertao运维笔记-公众号
- http://mirrors.163.com/.help/centos.html
- http://mirrors.163.com/centos/6/os/x86_64/
- https://mirror.tuna.tsinghua.edu.cn/centos/6/os/x86_64/
- https://fedoraproject.org/wiki/EPEL/zh-cn
- http://www.cnblogs.com/mchina/archive/2013/01/04/2842275.htm yum 源配置与使用