285 lines
10 KiB
Markdown
285 lines
10 KiB
Markdown
# 使用软件源加速软件包安装
|
|
|
|
## 概述
|
|
|
|
在 TKE 环境中,在容器运行中或构建镜像时,如果需要安装一些软件包,通常会使用基础镜像内自带的包管理工具进行安装,而基础镜像内默认的软件源在国内使用往往会比较慢,造成安装过程非常慢。而腾讯云实际本身提供了各个 linux 发行版的软件源,我们将容器内的软件源替换为腾讯云的软件源即可实现加速。
|
|
|
|
## 确定 linux 发行版版本
|
|
|
|
一般容器镜像都是基于某个基础镜像构建而来,通常查看 Dockerfile 就可以直到基础镜像用的哪个 linux 发行版。
|
|
|
|
也可以直接进入运行中的容器,执行 `cat /etc/os-release` 来检查基础镜像的 linux 发行版版本。
|
|
|
|
## Ubuntu
|
|
|
|
先根据 Ubuntu 发新版替换软件源,然后执行 `apt update -y` 更新软件源,最后再使用 `apt install -y xxx` 来安装需要的软件包。
|
|
|
|
**下面是各发行版的软件源替换方法**
|
|
|
|
### Ubuntu 20
|
|
|
|
```bash
|
|
cat > /etc/apt/sources.list <<'EOF'
|
|
deb http://mirrors.tencentyun.com/ubuntu/ focal main restricted universe multiverse
|
|
deb http://mirrors.tencentyun.com/ubuntu/ focal-security main restricted universe multiverse
|
|
deb http://mirrors.tencentyun.com/ubuntu/ focal-updates main restricted universe multiverse
|
|
#deb http://mirrors.tencentyun.com/ubuntu/ focal-proposed main restricted universe multiverse
|
|
#deb http://mirrors.tencentyun.com/ubuntu/ focal-backports main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ focal main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ focal-security main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ focal-updates main restricted universe multiverse
|
|
#deb-src http://mirrors.tencentyun.com/ubuntu/ focal-proposed main restricted universe multiverse
|
|
#deb-src http://mirrors.tencentyun.com/ubuntu/ focal-backports main restricted universe multiverse
|
|
EOF
|
|
```
|
|
|
|
### Ubuntu 18
|
|
|
|
```bash
|
|
cat > /etc/apt/sources.list <<'EOF'
|
|
deb http://mirrors.tencentyun.com/ubuntu/ bionic main restricted universe multiverse
|
|
deb http://mirrors.tencentyun.com/ubuntu/ bionic-security main restricted universe multiverse
|
|
deb http://mirrors.tencentyun.com/ubuntu/ bionic-updates main restricted universe multiverse
|
|
#deb http://mirrors.tencentyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
|
|
#deb http://mirrors.tencentyun.com/ubuntu/ bionic-backports main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ bionic main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ bionic-security main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ bionic-updates main restricted universe multiverse
|
|
#deb-src http://mirrors.tencentyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
|
|
#deb-src http://mirrors.tencentyun.com/ubuntu/ bionic-backports main restricted universe multiverse
|
|
EOF
|
|
```
|
|
|
|
### Ubuntu 16
|
|
|
|
```bash
|
|
cat > /etc/apt/sources.list <<'EOF'
|
|
deb http://mirrors.tencentyun.com/ubuntu/ xenial main restricted universe multiverse
|
|
deb http://mirrors.tencentyun.com/ubuntu/ xenial-security main restricted universe multiverse
|
|
deb http://mirrors.tencentyun.com/ubuntu/ xenial-updates main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ xenial main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ xenial-security main restricted universe multiverse
|
|
deb-src http://mirrors.tencentyun.com/ubuntu/ xenial-updates main restricted universe multiverse
|
|
EOF
|
|
```
|
|
|
|
## Debian
|
|
|
|
先根据 Debian 发新版替换软件源,然后执行 `apt update -y` 更新软件源,最后再使用 `apt install -y xxx` 安装需要的软件包。
|
|
|
|
**下面是各发行版的软件源替换方法**
|
|
|
|
### Debian 10
|
|
```bash
|
|
cat > /etc/apt/sources.list <<'EOF'
|
|
deb http://mirrors.tencentyun.com/debian buster main contrib non-free
|
|
# deb-src http://mirrors.tencentyun.com/debian buster main contrib non-free
|
|
deb http://mirrors.tencentyun.com/debian buster-updates main contrib non-free
|
|
# deb-src http://mirrors.tencentyun.com/debian buster-updates main contrib non-free
|
|
deb http://mirrors.tencentyun.com/debian-security buster/updates main contrib non-free
|
|
|
|
# deb-src http://mirrors.tencentyun.com/debian-security buster/updates main contrib non-free
|
|
# deb http://mirrors.tencentyun.com/debian buster-backports main contrib non-free
|
|
# deb-src http://mirrors.tencentyun.com/debian buster-backports main contrib non-free
|
|
# deb http://mirrors.tencentyun.com/debian buster-proposed-updates main contrib non-free
|
|
# deb-src http://mirrors.tencentyun.com/debian buster-proposed-updates main contrib non-free
|
|
EOF
|
|
```
|
|
|
|
### Debian 9
|
|
|
|
```bash
|
|
cat > /etc/apt/sources.list <<'EOF'
|
|
deb http://mirrors.tencentyun.com/debian stretch main contrib non-free
|
|
deb http://mirrors.tencentyun.com/debian stretch-updates main contrib non-free
|
|
deb http://mirrors.tencentyun.com/debian-security stretch/updates main
|
|
#deb http://mirrors.tencentyun.com/debian stretch-backports main contrib non-free
|
|
#deb http://mirrors.tencentyun.com/debian stretch-proposed-updates main contrib non-free
|
|
|
|
deb-src http://mirrors.tencentyun.com/debian stretch main contrib non-free
|
|
deb-src http://mirrors.tencentyun.com/debian stretch-updates main contrib non-free
|
|
deb-src http://mirrors.tencentyun.com/debian-security stretch/updates main
|
|
#deb-src http://mirrors.tencentyun.com/debian stretch-backports main contrib non-free
|
|
#deb-src http://mirrors.tencentyun.com/debian stretch-proposed-updates main contrib non-free
|
|
EOF
|
|
```
|
|
|
|
## CentOS
|
|
|
|
先删除 CentOS 镜像中所有自带软件源:
|
|
```bash
|
|
rm -f /etc/yum.repos.d/*
|
|
```
|
|
|
|
再根据 CentOS 发新版替换软件源,然后执行下面命令更新缓存:
|
|
|
|
```bash
|
|
yum clean all
|
|
yum makecache
|
|
```
|
|
|
|
最后再使用 `yum install -y xxx` 来安装需要的软件包。
|
|
|
|
**下面是各发行版的软件源替换方法**
|
|
|
|
### CentOS 8
|
|
|
|
```bash
|
|
cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
|
|
# Qcloud-Base.repo
|
|
|
|
[BaseOS]
|
|
name=Qcloud-$releasever - BaseOS
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/BaseOS/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=1
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/CentOS-Epel.repo <<'EOF'
|
|
[epel]
|
|
name=EPEL for redhat/centos $releasever - $basearch
|
|
baseurl=http://mirrors.tencentyun.com/epel/$releasever/Everything/$basearch
|
|
failovermethod=priority
|
|
enabled=1
|
|
gpgcheck=1
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/CentOS-centosplus.repo <<'EOF'
|
|
# Qcloud-centosplus.repo
|
|
|
|
[centosplus]
|
|
name=Qcloud-$releasever - Plus
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/centosplus/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=0
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/Qcloud-Extras.repo <<'EOF'
|
|
# Qcloud-Extras.repo
|
|
|
|
[extras]
|
|
name=Qcloud-$releasever - Extras
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=1
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/Qcloud-Devel.repo <<'EOF'
|
|
# Qcloud-Devel.repo
|
|
|
|
[Devel]
|
|
name=Qcloud-$releasever - Devel WARNING! FOR BUILDROOT USE ONLY!
|
|
baseurl=http://mirrors.tencentyun.com/$contentdir/$releasever/Devel/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=0
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/Qcloud-AppStream.repo <<'EOF'
|
|
# Qcloud-AppStream.repo
|
|
|
|
[AppStream]
|
|
name=Qcloud-$releasever - AppStream
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/AppStream/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=1
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/Qcloud-PowerTools.repo <<'EOF'
|
|
# Qcloud-PowerTools.repo
|
|
|
|
[PowerTools]
|
|
name=Qcloud-$releasever - PowerTools
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/PowerTools/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=0
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/Qcloud-HA.repo <<'EOF'
|
|
# Qcloud-HA.repo
|
|
|
|
[HighAvailability]
|
|
name=Qcloud-$releasever - HA
|
|
baseurl=http://mirrors.tencentyun.com/$contentdir/$releasever/HighAvailability/$basearch/os/
|
|
gpgcheck=1
|
|
enabled=0
|
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Qcloud-8
|
|
EOF
|
|
```
|
|
|
|
|
|
### CenOS 7
|
|
|
|
```bash
|
|
cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
|
|
[extras]
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/
|
|
name=Qcloud centos extras - $basearch
|
|
[os]
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/
|
|
name=Qcloud centos os - $basearch
|
|
[updates]
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/
|
|
name=Qcloud centos updates - $basearch
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/CentOS-Epel.repo <<'EOF'
|
|
[epel]
|
|
name=EPEL for redhat/centos $releasever - $basearch
|
|
failovermethod=priority
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-7
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/epel/$releasever/$basearch/
|
|
EOF
|
|
```
|
|
|
|
### CentOS 6
|
|
|
|
```bash
|
|
cat > /etc/yum.repos.d/CentOS-Base.repo <<'EOF'
|
|
[extras]
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-6
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/
|
|
name=Qcloud centos extras - $basearch
|
|
[os]
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-6
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/
|
|
name=Qcloud centos os - $basearch
|
|
[updates]
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-6
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/
|
|
name=Qcloud centos updates - $basearch
|
|
EOF
|
|
|
|
cat > /etc/yum.repos.d/CentOS-Epel.repo <<'EOF'
|
|
[epel]
|
|
name=epel for redhat/centos $releasever - $basearch
|
|
failovermethod=priority
|
|
gpgcheck=1
|
|
gpgkey=http://mirrors.tencentyun.com/epel/RPM-GPG-KEY-EPEL-6
|
|
enabled=1
|
|
baseurl=http://mirrors.tencentyun.com/epel/$releasever/$basearch/
|
|
EOF
|
|
``` |