暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

yum常用命令,rpm下载不安装,配置国内yum源

陶老师运维笔记 2019-11-17
2029

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. 1. 安装软件:yum install S

  2. 2. 卸载软件:yum remove S

  3. 3. 检查依赖:yum deplist S

  4. 4. 软件信息:yum info S

  5. 5. 更新软件:yum update S

  6. 6. 检查更新:yum check-update

  7. 7. 软件列表:yum list installed

安装:

  1. yum install 全部安装

  2. yum install package 安装指定的安装包 package

  3. yum install package -y 直接安装不用询问是否安装。

  4. yum groupinsall group 安装程序组 group

更新:

  1. yum update 全部更新。

  2. yum update package 更新指定程序包 package

  3. yum check-update 检查可更新的程序。

  4. yum upgrade package 升级指定程序包 package

  5. yum groupupdate group 升级程序组 group

查找和显示:

  1. yum repolist 查看(开启的)资源库。

  2. yum repolist all 查看所有资源库。

  3. yum search 使用 YUM 查找软件包。

  4. yum search string 根据关键字 string 查找安装包。


  5. yum info package 显示安装包信息 package

  6. yum info updates 列出更新信息。

  7. yum info installed 列出安装包信息。

  8. yum list 显示所有已经安装和可以安装的程序包。

  9. yum list updates 列出所有可更新的包。

  10. yum list installed 列出所有已经安装的包。

  11. yum list extras 列出所有已安装,但是没有在 repo 里的包。

  12. yum list package 显示指定程序包安装情况 package

  13. yum groupinfo group 显示程序组 group 信息。

删除程序:

  1. yum remove package 删除程序包 package

  2. yum groupremove group 删除程序组 group

  3. yum deplist package 查看程序 package 依赖情况。

清除缓存:

  1. yum clean packages 清除缓存目录下的软件包。

  2. yum clean headers 清除缓存目录下的 headers

  3. yum clean oldheaders 清除缓存目录下旧的 headers

  4. yum clean/yum clean all 清除缓存目录下的软件包及旧的 headers

导入rpm-gpg 文件:

  1. 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部分的配置选项。

  1. #yum的配置文件

  2. $cat /etc/yum.conf

  3. [main]

  4. cachedir=/var/cache/yum/$basearch/$releasever #yum下载后的缓存目录

  5. keepcache=0 #是否缓存,0为不缓存,1为缓存

  6. debuglevel=2

  7. logfile=/var/log/yum.log #yum的安装日志

  8. exactarch=1

  9. obsoletes=1

  10. gpgcheck=1 #默认是否进行gpg校验,0为不校验,1校验

  11. plugins=1

  12. installonly_limit=5

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

  14. distroverpkg=centos-release

配置说明
cachediryum 缓存的目录,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

  1. cat /etc/yum.repos.d/influxdb.repo

  2. [influxdb]

  3. name = InfluxDB Repository - RHEL $releasever

  4. baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable

  5. enabled = 1

  6. gpgcheck = 1

  7. gpgkey = https://repos.influxdata.com/influxdb.key

示例2: aliyun repo

  1. [CentOS6-base] #源名称,必填

  2. name=CentOS-$releasever-base #源描述,可以不填,但是会有提示

  3. #baseurl=file:///misc/cd/ #本地的光盘文件,可以有多个地址。必填

  4. baseurl=https://mirrors.aliyun.com/centos/$releasever/os/x86_64/

  5. gpgcheck=1 #是否开启校验,在yum.conf中已经定义它默认值为1

  6. enabled=1 #是否禁用此yum源,默认为

  7. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

  8. #如果开启yum源包校验,则需要导入RPM公钥,此处只是在系统没有导入rpm公钥时候进行安装

  9. #这里相当于rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


  10. [aliyun_epel] #这是Redhat的扩展包

  11. name=ailiyun_yum_epel

  12. baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64

  13. gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6

  14. gpgcheck=1

在配置yum源时候,最少只需要两行即可,[reponame]和baseurl:

配置说明
reponame写在[]中的[reponame],如自定义软件名称[influxdb]或[base],[contrib],[extras]等
$releasever代表发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$archcpu体系,如i686,athlon等
$basearchcpu的基本体系组,如i686和athlon同属i386

4. 修改yum源为国内源

4.1 常用国内yum源

安装软件时用国外yum源网速通常不如国内源速度快,为加快安装速度可以改用国内yum源。国内yum镜像站点:网易源: http://mirrors.163.com/centos/6/os/x8664/ 清华大学: https://mirror.tuna.tsinghua.edu.cn/centos/6/os/x8664/ 阿里源: 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

  1. 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/阿里云:

  1. Centos5地址:

  2. wget -O /etc/yum.repos.d/CentOS-5-aliyun.repo http://mirrors.aliyun.com/repo/Centos-5.repo

  3. Centos6地址:

  4. wget -O /etc/yum.repos.d/CentOS-6-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo


  5. curl -o /etc/yum.repos.d/CentOS-6-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo

  6. Centos7地址:

  7. wget -O /etc/yum.repos.d/CentOS-7-aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo

163源:

  1. CentOS 5

  2. wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS5-Base-163.repo

  3. CentOS 6

  4. wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS6-Base-163.repo

  5. CentOS 7

  6. wget -O /etc/yum.repos.d/CentOS-Base-163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

4.2.3 生成缓存

清除原缓存,并生成新cache。

  1. yum clean all

  2. yum makecache

5. EPEL源

EPEL(Extra Packages for Enterprise Linux)是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS等提供高质量软件包的项目。装上了 EPEL,即可yum安装很多以前需要编译安装的软件,如现在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安装更新。

官网: https://fedoraproject.org/wiki/EPEL/zh-cn

5.1 安装EPEL

执行命令:yum install epel-release

  1. $yum install epel-release

  2. 或者

  3. http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

  4. #检查安装

  5. $rpm -q epel-release

  6. $rpm -qa |grep epel -i

  7. $ls -l /etc/yum.repos.d/

  8. #导入key

  9. rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

  10. 重建缓存

  11. yum makecache

5.2 安装EPEL 阿里云源:

删除原EPEL源:

  1. #检查安装

  2. $rpm -qa |grep epel -i

  3. $rpm -q epel-release

  4. #删除原官方rpel

  5. rpm -e epel-release-6-8.noarch

安装阿里云repo:

  1. #

  2. epel(RHEL 5)

  3. wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-5.repo

  4. epel(RHEL 6)

  5. wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-6.repo

  6. epel(RHEL 7)

  7. wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-7.repo

  8. #检查

  9. cat /etc/yum.repos.d/epel-aliyun.repo

修改priority:修改/etc/yum.repos.d/epel.repo文件。在[epel]最后添加一条属性 priority=11,意思是yum先去官方源查,官方没有再去epel的源找。

  1. vi /etc/yum.repos.d/epel.repo

  2. priority=11

重建缓存:

  1. yum clean all

  2. yum makecache

6. rpm包search

有时安装rpm时,找不到rpm包,可试下如下网站。

  • http://rpm.pbone.net/

  • http://rpmfind.net/ 

7.只下载RPM包而不安装

需要yum-plugin-downloadonly软件帮助实现。

7.1 安装yum-plugin-downloadonly:

  1. $yum install yum-plugin-downloadonly

7.2使用:

安装后,yum就多了两个命令参数,分别是:--downloadonly //只下载 , --downloaddir=/path/to/dir //下载到指定目录

示例:下载redis软件包,但不安装。

  1. $yum install --downloadonly --downloaddir=/root/ redis -y

  2. ...

  3. Installed size: 1.6 M

  4. Downloading Packages:

  5. exiting because --downloadonly specified

参考:

  • 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 源配置与使用


最后修改时间:2019-12-17 12:28:34
文章转载自陶老师运维笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论