Bootstrap

Linux 软件源配置

1、简介

Linux 操作系统安装软件比较常用的一些命令 yumdnfapt-getzypper 以及 pacman。这些命令分别对应不同的操作系统,大致可以分为 RHELDEBSUSE 和 ARCH 四种。

Linux 系统安装软件必须要配置软件源,可以分为网络和本地两种方式。

  • 网络源:必须要连接外网,连接到软件源 REPO 进行软件的下载安装。

  • 本地源:使用安装的镜像文件(ISO)配置本地软件源,无需联网,比较适合内网使用,安全可控。

1.1 操作系统

  • RedHat 6/7/8/9 全系

  • OracleLinux 6/7/8/9 全系

  • Centos 6/7/8 全系

  • Rocky Linux 8/9 全系

  • AlmaLinux 8/9 全系

  • SUSE 12/15 全系

  • 华为欧拉 openEuler 20~24 全系

  • 华为欧拉 EulerOS V2 全系

  • 阿里龙蜥 openAnolis 7/8 全系

  • 银河麒麟 Kylin V10 全系

  • 中标麒麟 NeoKylin V7 全系

  • 统信 UOS V20 全系

  • NingOS

  • OpenCloudOS 7/8/9 全系

  • Debian 全系

  • Deepin 全系

  • Ubuntu 全系

  • ArchLinux

  • Fedora 13~39 全系

  • 红旗 asianux

  • 中科方德

2、配置本地软件源

配置本地软件源的方式需要先挂载本地 ISO 安装镜像。

2.1 挂载 ISO 镜像

挂载分为两种方式:

1、上传 iso 安装镜像到服务器主机指定目录下,以 /iso 为例:

mount -o loop /iso/iso镜像包名称 /mnt

2、直接虚拟机或者物理主机层面挂载 iso 安装镜像:

mount /dev/sr0 /mnt

挂载完之后,通过 df -Th /mnt 查看挂载情况:

df -Th /mnt

以上两种方式都可以实现挂载,具体看情况使用即可。

PS:默认 ISO 安装镜像挂载在 /mnt 目录下,直接复制使用即可。

2.2 RHEL 系

RHEL 系有以下操作系统:

  • Centos

  • RedHat

  • OracleLinux

  • RockyLinux

  • AlmaLinux

  • OpenCloudOS

  • 阿里龙蜥 Anolis

  • 中标麒麟 NeoKylin V7

RHEL 系的操作系统软件源配置目录均为:/etc/yum.repos.d

2.2.1 6~7 全系

## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
cat<<-EOF>/etc/yum.repos.d/local.repo
[server]
name=server
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/local.repo

2.2.2 8~9 全系

REHL 从 8 版本开始,安装命令从 yum 替换为 dnf,但是 yum 命令还是可以使用。

## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
cat <<-EOF > /etc/yum.repos.d/local.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/local.repo

2.3 kylinV10 / NingOS / 红旗asianux / 中科方德NFS 

## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
cat<<-EOF>/etc/yum.repos.d/local.repo
[server]
name=server
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/local.repo

2.4 SUSE

SUSE 系的操作系统软件源配置目录均为:/etc/zypp/repos.d/

2.4.1 SUSE 12 全系

## 备份系统初始配置文件
mkdir -p /etc/zypp/repos.d/bak
mv /etc/zypp/repos.d/* /etc/zypp/repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
zypper ar -f /mnt sles

2.4.2 SUSE 15 全系

## 备份系统初始配置文件
mkdir -p /etc/zypp/repos.d/bak
mv /etc/zypp/repos.d/* /etc/zypp/repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
zypper ar -f /mnt/Module-Basesystem sles
zypper ar -f /mnt/Module-Legacy sles-Legacy
zypper ar -f /mnt/Module-Development-Tools sles-Tools

2.5 华为欧拉 openEuler

openEuler 软件源配置全版本通用:

## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
cat <<-EOF > /etc/yum.repos.d/local.repo
[openEuler]
name=openeuler
baseurl=file://mnt
enabled=1
gpgcheck=1
gpgkey=file://mnt/RPM-GPG-KEY-openEuler
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/local.repo

2.6 统信 UOS

2.6.1 A 系

A 系采用的是 openAnolis 技术路线,使用命令方面:在线安装是 dnf yum 命令,离线安装包是 rpm 包。

配置方式参考 RHEL 系。

2.6.2 C 系

C 系基于 CentOS 社区发行版进行二次商业化发行的 Linux 操作系统。使用命令方面:在线安装是 dnf yum 命令,离线安装包是 rpm 包。

配置方式参考 RHEL 系。

2.6.3 D 系

D 系采用的是 Debian 技术路线,使用命令方面:在线安装是 apt 命令,离线安装包是 deb 包。

uos_codename=$(grep -oP '^VERSION_CODENAME="?(\K[^"]+|[^"]+$)' /etc/os-release)
## 备份系统初始配置文件
mkdir -p /etc/apt/bak
mv /etc/apt/sources.list /etc/apt/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
cat <<-EOF > /etc/apt/sources.list
deb [trusted=yes] file:///mnt $uos_codename main
EOF
## 查看配置好的软件源
cat /etc/apt/sources.list

2.6.3 E 系

E 系采用的是 openEuler 技术路线,使用命令方面:在线安装是 dnf yum 命令,离线安装包是 rpm 包。

## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
## 一键配置软件源,默认 ISO 安装镜像挂载在 /mnt 目录下
cat <<-EOF > /etc/yum.repos.d/local.repo
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/local.repo

3、配置网络软件源

Linux 有部分操作系统的 ISO 安装镜像包不全,所以需要配置网络软件源,主要为 Deb 系、ARCH 系、华为euleros以及 Fedora

3.1 华为欧拉 EulerOS V2 全系

## 获取版本号
euler_codename=$(grep -oP '(?<=release )\d+\.' /etc/euleros-release)$(grep -oP '(?<=SP)\d+' /etc/euleros-release)
## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/ /etc/yum.repos.d/bak
## 一键配置软件源
cat <<-EOF > /etc/yum.repos.d/EulerOS-base.repo
[base]
name=EulerOS
baseurl=http://mirrors.huaweicloud.com/euler/$euler_codename/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.huaweicloud.com/euler/$euler_codename/os/RPM-GPG-KEY-EulerOS
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/EulerOS-base.repo

3.2 Fedora 全系

## 获取 cpu 类型和版本号
cpu_type=$(uname -m)
releasever=$(grep -oP '^VERSION_ID="?(\K[^"]+|[^"]+$)' /etc/os-release)
## 备份系统初始配置文件
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/ /etc/yum.repos.d/bak
## 一键配置软件源
cat <<-EOF > /etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora
failovermethod=priority
baseurl=http://mirrors.tuna.tsinghua.edu.cn/fedora/releases/$releasever/Everything/$cpu_type/os/
metadata_expire=28d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$cpu_type
skip_if_unavailable=False
EOF
## 查看配置好的软件源
cat /etc/yum.repos.d/fedora.repo

3.3 ARCH 全系

## 备份系统初始配置文件
mkdir -p /etc/pacman.d/bak
mv -f /etc/pacman.d/mirrorlist /etc/pacman.d/bak
## 一键配置软件源
cat <<-EOF > /etc/pacman.d/mirrorlist
Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch
EOF
## 查看配置好的软件源
cat /etc/pacman.d/mirrorlist

3.4 Deb 系

Deb 系有以下操作系统:

  • Debian

  • Ubuntu

  • Deepin

Deb 系的操作系统软件源配置文件均为:/etc/apt/sources.list

3.4.1 Debian 8~10

## 获取版本号
debs_codename=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d '=' -f2)
## 首先安装 Freexian 的 APT 源密钥
wget http://deb.freexian.com/extended-lts/archive-key.gpg -O /tmp/elts-archive-key.gpg
mv -f /tmp/elts-archive-key.gpg /etc/apt/trusted.gpg.d/freexian-archive-extended-lts.gpg
## 备份系统初始配置文件
mkdir -p /etc/apt/bak
mv /etc/apt/sources.list /etc/apt/bak
## 一键配置软件源
cat <<-EOF > /etc/apt/sources.list
deb http://mirrors4.tuna.tsinghua.edu.cn/debian-elts $debs_codename main contrib non-free
EOF
## 查看配置好的软件源
cat /etc/apt/sources.list

3.4.2 Debian 11~12

## 获取版本号
debs_codename=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d '=' -f2)
## 备份系统初始配置文件
mkdir -p /etc/apt/bak
mv /etc/apt/sources.list /etc/apt/bak
## 一键配置软件源
cat <<-EOF > /etc/apt/sources.list
deb http://mirrors4.tuna.tsinghua.edu.cn/debian/ $debs_codename main contrib non-free
EOF
## 查看配置好的软件源
cat /etc/apt/sources.list

3.4.3 Ubuntu 全系

## 获取版本号
debs_codename=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d '=' -f2)
## 备份系统初始配置文件
mkdir -p /etc/apt/bak
mv /etc/apt/sources.list /etc/apt/bak
## 一键配置软件源
cat <<-EOF > /etc/apt/sources.list
deb http://mirrors4.tuna.tsinghua.edu.cn/ubuntu/ $debs_codename main restricted universe multiverse
EOF
## 查看配置好的软件源
cat /etc/apt/sources.list

3.4.4 Deepin 全系

## 获取版本号
debs_codename=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d '=' -f2)
## 备份系统初始配置文件
mkdir -p /etc/apt/bak
mv /etc/apt/sources.list /etc/apt/bak
## 一键配置软件源
cat <<-EOF > /etc/apt/sources.list
deb https://community-packages.deepin.com/deepin/ $debs_codename main contrib non-free
EOF
## 查看配置好的软件源
cat /etc/apt/sources.list
;