天天看点

Linux 本地yum源与网络yum源的配置使用

作者:寒笛过霜天

Yum软件仓库

Yum仓库则是为进一步简化RPM管理软件难度而设计的, Yum能够根据用户的要求分析出所需软件包及其相关依赖关系, 自动从服务器下载软件包并安装到系统。

用户能够根据需求来指定Yum仓库与是否校验软件包, 而这些只需几条关键词即可完成, 所有Yum仓库的配置文件均需以.repo结尾并存放在/etc/yum.repos.d/目录中的。

[rhel-media]: yum源的名称, 可自定义。

name=linuxprobe : yum仓库的名称, 可自定义。

baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)

enabled=1 : 设置此源是否可用, 1为可用, 0为禁用。

gpgcheck=1 : 设置此源是否校验文件, 1为校验, 0为不校验。

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若为校验请指定公钥文件地址。

一、本地yum源

系统默认已经安装了可使用yum的软件包, 所以可以直接配置:

[root@localhost ~]# cd /etc/yum.repos.d/ yum源配置文件放置目录

[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak 先将网络yum源的配置文件更名(让其失效), 因为系统默认优先使用网络yum源

[root@localhost yum.repos.d]# vim CentOS-Media.repo 编辑本地yum源文件

[c6-media]

name=CentOS-$releasever - Media 本地yum源名称(可随意修改)

baseurl=file:///mnt/cdrom 光盘挂载目录/mnt/cdrom

gpgcheck=1

enabled=1 使用此yum源(等于0为不启用)

gpgkey=file:///mnt/sr0/RPM-GPG-KEY-CentOS-6 本地yum源密钥

[root@localhost yum.repos.d]# mount /dev/cdrom /mnt/cdrom 挂载光盘

执行yum list检测是否可用

二、网络yum源(前提是必须能连上互联网, 此处使用的yum源是中国科技大学的地址如下:中国科技大学:http://centos.ustc.edu.cn/centos/)

[root@localhost yum.repos.d]# mv CentOS-Base.bak CentOS-Base.repo 如果之前没更名就不用操作此步骤

[root@localhost yum.repos.d]# vim CentOS-Base.repo 编辑网络yum源文件

[base]

name=CentOS-$releasever - Base

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

baseurl=http://centos.ustc.edu.cn/centos/$releasever/os/$basearch/

gpgcheck=1

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

#released updates

[updates]

name=CentOS-$releasever - Updates

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

baseurl=http://centos.ustc.edu.cn/centos/$releasever/updates/$basearch/

gpgcheck=1

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

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

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

baseurl=http://centos.ustc.edu.cn/centos/$releasever/extras/$basearch/

gpgcheck=1

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

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

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

baseurl=http://centos.ustc.edu.cn/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

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

#contrib - packages by Centos Users

[contrib]

name=CentOS-$releasever - Contrib

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

baseurl=http://centos.ustc.edu.cn/centos/$releasever/contrib/$basearch/

gpgcheck=1

enabled=0

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

注意:以上网络yum源系统默认已经配置

yum最大的优势在于可以联网去下载所需要的rpm包, 然后自动安装, 在这个工程中如果要安装的rpm包有依赖关系,

yum会帮你解决掉这些依赖关系依次安装所有rpm包。下面阿铭介绍常用的yum 命令。

列出所有可用的rpm包"yum list"

[root@localhost yum.repos.d]# yum list |head -n 20

搜索一个rpm包

命令 yum search [相关关键词]

[root@localhost ~]# yum search vim

安装一个rpm包

命令 yum install [-y] [rpm包名]

如果不加 "-y" 选项, 则会以与用户交互的方式安装, 首先是列出需要安装的rpm包信息, 然后会问用户是否需要安装, 输入y则安装, 输入n则不安装。

如果觉得太麻烦, 所以直接加上"-y"选项, 这样就省略掉了问用户是否安装的那一步。

[root@localhost ~]# yum install vim-X11

卸载一个rpm包

命令 yum remove [-y] [rpm包名]

[root@localhost ~]# yum remove vim-X11

卸载和安装一样, 也可以直接加上"-y"选项来省略掉和用户交互的步骤。

卸载某个rpm包一定要看清楚了, 不要连其他重要的rpm包一起卸载了, 以免影响正常的业务。

升级一个rpm包

命令 yum update [-y] [rpm包]

[root@localhost ~]# yum update libselinux'

Yum仓库中的RPM软件包可以是由红帽官方发布的, 也可以是第三方组织发布的, 当然用户也可以编写的~随书提供的镜像光盘内已经包含了大量的可用RPM软件包, 将会在后面的实验章节中为大家演示如何使用。

命令 作用

yum repolist all 列出所有仓库。

yum list all 列出仓库中所有软件包

yum info 软件包名称 查看软件包信息

yum install 软件包名称 安装软件包

yum reinstall 软件包名称 重新安装软件包

yum update 软件包名称 升级软件包

yum remove 软件包 移除软件包

yum clean all 清除所有仓库缓存

yum check-update 检查可更新的软件包

yum grouplist 查看系统中已经安装的软件包组

yum groupinstall 软件包组 安装指定的软件包组

yum groupremove 软件包组 移除指定的软件包组

yum groupinfo 软件包组 查询指定的软件包组信息

三 Centos配置国内yum源

网易yum源是国内最好的yum源之一, 无论是速度还是软件版本, 都非常的不错, 将yum源设置为163yum, 可以提升软件包安装和更新的速度,

同时避免一些常见软件版本无法找到。

具体设置方法如下:

1 进入yum源配置目录

cd /etc/yum.repos.d

2 备份系统自带的yum源

mv CentOS-Base.repo CentOS-Base.repo.bk

下载163网易的yum源:

Centos6

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

Centos7

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

3 更新玩yum源后, 执行下边命令更新yum配置, 使操作立即生效

yum makecache

4 除了网易之外, 国内还有其他不错的yum源, 比如中科大和搜狐的, 大家可以根据自己需求下载

中科大的yum源:

wget http://centos.ustc.edu.cn/CentOS-Base.repo

sohu的yum源

wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo

linux下yum的$releasever和$basearch的取值

查看关于yum的配置

> # ls /etc/yum* -ld

drwxr-xr-x. 5 root root 4096 Nov 9 2016 /etc/yum

-rw-r--r--. 1 root root 969 May 12 2016 /etc/yum.conf

drwxr-xr-x. 2 root root 4096 Jan 26 12:13 /etc/yum.repos.d

查看/etc/yum.repos.d下的文件

> # cd /etc/yum.repos.d/

> # ls

CentOS-Base.repo CentOS-Epel.repo nginx.repo

> # vim CentOS-Base.repo

[os]

name=Qcloud centos os - $basearch

baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/

enabled=1

gpgcheck=1

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

[updates]

name=Qcloud centos updates - $basearch

baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/

enabled=1

gpgcheck=1

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

#[centosplus]

#name=Qcloud centosplus - $basearch

#baseurl=http://mirrors.tencentyun.com/centos/$releasever/centosplus/$basearch/

#enabled=1

#gpgcheck=1

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

#[contrib]

#name=Qcloud centos contrib - $basearch

#baseurl=http://mirrors.tencentyun.com/centos/$releasever/contrib/$basearch/

#enabled=1

#gpgcheck=1

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

#[cr]

#name=Qcloud centos cr - $basearch

#baseurl=http://mirrors.tencentyun.com/centos/$releasever/cr/$basearch/

#enabled=1

#gpgcheck=1

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

[extras]

name=Qcloud centos extras - $basearch

baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/

enabled=1

gpgcheck=1

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

#[fasttrack]

#name=Qcloud centos fasttrack - $basearch

#baseurl=http://mirrors.tencentyun.com/centos/$releasever/fasttrack/$basearch/

#enabled=1

#gpgcheck=1

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

我们看出来里面包含大量的变量$releasever和$basearch

$releasever的值,这个表示当前系统的发行版本, 可以通过rpm -qi centos-release命令查看

[root@VM_90_157_centos yum.repos.d]# rpm -qi centos-release

Name : centos-release Relocations: (not relocatable)

Version : 6 Vendor: CentOS

Release : 8.el6.centos.12.3 Build Date: Thu 19 May 2016 03:47:46 AM CST

Install Date: Wed 09 Nov 2016 11:47:00 AM CST Build Host: worker1.bsys.centos.org

Group : System Environment/Base Source RPM: centos-release-6-8.el6.centos.12.3.src.rpm

Size : 35634 License: GPLv2

Signature : RSA/SHA1, Thu 19 May 2016 03:51:51 AM CST, Key ID 0946fca2c105b9de

Packager : CentOS BuildSystem <http://bugs.centos.org>

Summary : CentOS release file

Description :

CentOS release files

其中的Version:6就是我们系统的版本号

$basearch是我们的系统硬件架构(CPU指令集), 使用命令arch得到

> # arch

x86_64

在Linux中使用命令arch可以初步查看出当前系统所识别出来的机器CPU类型, 如"i386", "i486","i586", "alpha", "sparc", "arm", "m68k","mips","ppc","ia64","x86_64"等, ia64和x86_64就说明这台机器是64位的;

所以我这儿要使用x86_64作为$basearch的值

baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

完整路径便是

baseurl=http://mirror.centos.org/centos/6/os/x86_64/

如何直接添加仓库(源)?

> # yum install -y yum-utils

> # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #添加docker-ce源

> # yum-config-manager --add-repo http://mirrors.aliyun.com/repo/Centos-7.repo #阿里云yum源

> # yum-config-manager --add-repo http://mirrors.163.com/.help/CentOS7-Base-163.repo #163yum源

更新为阿里云yum源

> # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

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

更新为163yum源

> # mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

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

常见问题:

> # yum search lsyncd

已加载插件:fastestmirror, langpacks

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

警告:没有匹配 lsyncd 的软件包

解决方法:

> # yum -y install epel-release

继续阅读