开始之前简单讲下源和包管理器的概念,个人理解如下:

源就是平时我们win电脑上的360软件管家、腾讯软件管家、微软商店:提供下载各类软件包、安装包的平台;

包管理器是win电脑上各类软件的安装包:例如qq.exe、360.msi等

需要下载后用指定的命令可以进行安装、卸载等操作,跟源配合使用。

一、官网源

每台Centos系统安装后,都自带官方厂家源,称为官网源。

以Centos7为例子,官网源的路径在/etc/yum.repos.d文件夹下,里面有多个repo的源文件,记录各软件的下载网址

由于Centos是红帽公司旗下,所以它的包管理器是rpm(Red Hat Package Manager),官方源也是红帽发布。官网:http://mirrorlist.centos.org/  

官网源特征包含**mirrorlist.centos.org**网址

示例:Centos7.9-CentOS-Base.repo

[root@centos79-144 yum.repos.d]# cat CentOS-Base.repo 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

二、国内源

国内源就是国内网站,跟官网的区别就是替换国内的网址,速度更快,下载更方便,在生产环境常用国内源 

常说国内源,就是将上面官网源的相关地址文件给删除或者直接替换里面网址的内容,把网址指向国内公司的源网址

常用的如下:

阿里源:centos镜像_centos下载地址_centos安装教程-阿里巴巴开源镜像站 (aliyun.com)

清华源:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

腾讯源:腾讯软件源 (tencent.com)

华为源:华为开源镜像站_软件开发服务_华为云 (huaweicloud.com)

举例:Centos7替换阿里源

1、使用mv命令,将原来源文件夹下的源重命名为CentOS-Base.repo.backup

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


2、使用curl命令,下载阿里的源文件到源文件存放目录,并取名为CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo


3、其实到这里就可以使用了,当新下载软件就会读取CentOS-Base.repo的网址信息。

 

提问1:CentOS-Base.repo这个源文件可以改名嘛?可以改后缀嘛?

答:名字可以随便改,不影响下载源里面的信息;而后缀必须以.repo才可以。系统只会读取.repo的文件认作源,其他的一概不认

 
提问2:为什么之前备份的CentOS-Base.repo.backup系统不会读取?CentOS-Base.repo可以读取?

答:因为文件后缀不同,系统只会把.repo文件认作源,其他的一概不认

三、第三方源和EPEL源

  • 除了官网和国内源,还有一些第三方源。

第三方源一般是软件厂家针对不同linux系统自己发布的源,它不会随着开机自带,需要我们额外手动添加。

比如docker、kubernetes、ceph、MySQL等等,由于公司大、使用多、下载也大,人家就自己发布了源提供下载。

提问:官网源和国内源里面有docker呢?还需要下载docker的源嘛?

答:是的,有些软件在源里面自带了,但是仔细观察你会发现版本都比较低,是老版本;而厂家发布的docker源是最新的。

如果你需要安装新版docker就额外添加源

提问:当添加了多个源,包含了一个软件的多个版本,我安装的是那个版本呢?

答:如果有多个版本,yum install  xxx命令默认会安装最新版本。

如果想安装指定版本使用

yum list xxxx --showduplicates | sort -r

查询当前有哪些版本然后在跟进安装包名安装指定版本

  • EPEL源比较特殊,它是红帽官网发布的针对企业特别补充的源(理论来说也算官网源)

但是它并不是开机自带,而是像第三方源一样,需要我们额外添加

四、离线环境如何下载安装包

由于源是需要连接互联网的,国内的一些保密单位和企业工厂是没有外网互联网的,这种情况怎么处理呢?

博主推荐3种方法,搭配使用解决离线环境问题

4-1、 在有网络的电脑直接下载安装包后拷贝离线环境使用

直接在电脑或手机上访问如下网址,下载后直接拷贝使用

第三方镜像站:RPM Search (pbone.net)

第三方镜像站:Packages for Linux and Unix (pkgs.org)

4-2、找台有网络的linux系统上缓存安装包后拷贝使用

yum的命令自带了缓存功能,可以事先在有LINUX环境或者安装一个linux虚拟机进行缓存后拷贝

博主在离线交付时经常使用,这个缓存命令还可以缓存依赖

举例:Centos7缓存telnet

#使用方法,xxx为软件包名,--downloaddir为缓存的文件夹
yum install xxx --downloadonly --downloaddir=/home/xxx 


#离线缓存telnet软件到home/telnet文件夹下
yum install telnet --downloadonly --downloaddir=/home/telnet 

4-3、直接搭建ISO源作为离线环境使用

在安装系统的时候,系统镜像是一个ISO。这个ISO除了可以安装系统,也自带很多基本软件,可以作为离线源使用

使用方法参考博主之前的文章:

Centos-挂载离线ISO做为本地源_centos挂载本地镜像作为镜像源_明风个人技术博客的博客-CSDN博客

基本上这3个可以解决90%离线环境问题。如果遇到特别多的软件且不在iso里面,这个时候就要自己制作离线源了。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐