介绍
Linux软件源,本质上是存放软件包的中央仓库,你的系统会从这里下载、安装和更新软件。这些源由发行版官方、开源社区或第三方组织维护,每天有数百万台设备通过全球数千个镜像节点进行软件同步,构成了整个Linux生态的软件供应链基础。Linux 的"源"指的是软件仓库(Repository)——包管理器(apt/yum/dnf/pacman 等)按配置文件里的地址去拉取 .deb/.rpm/.pkg.tar.* 的地方。
1.主流发行版软件源配置详解
不同发行版不仅包格式不一样,仓库配置文件的路径、格式、分工也完全不同。
1.RHEL / CentOS / Fedora 系(yum/dnf + .rpm)
-
包管理器:
yum(RHEL 7) /dnf(RHEL 8/9+, Fedora) -
配置文件: 一个或多个位于
/etc/yum.repos.d/目录下、以.repo为后缀的文件 或者/etc/yum.conf或 /etc/dnf/dnf.conf
核心配置格式:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[base]:仓库 ID,全局必须唯一,重复了后面的覆盖前面的
name=:描述字符串,$releasever会自动替换成系统主版本(7/8/9)
baseurl=:仓库真实地址,支持 http/https/ftp/file 四种协议;与 mirrorlist二选一
mirrorlist=:镜像列表 URL,yum/dnf 会自动挑最快的(CentOS 官方默认用这个)
enabled=1/0:1 启用 0 禁用,不用删文件,改这个就行
gpgcheck=1/0:是否校验 GPG 签名,生产必开
gpgkey=:GPG 公钥路径(本地 file:// 或 URL 都行)
exclude=pkg*/ includepkgs=:黑白名单,进阶用
priority=:优先级,数值越小越先(要装 yum-plugin-priorities)
常用变量
$releasever→ 系统主版本号(如 9)
$basearch→ 基础架构(x86_64 / aarch64)
$arch→ 完整架构
2.Debian / Ubuntu 系(apt + .deb)
-
包管理器:
apt -
配置文件:
-
旧格式/主文件:
/etc/apt/sources.list -
推荐方式:
/etc/apt/sources.list.d/目录下的.list或.sources文件
-
核心配置格式:
# .list 文件(传统单行格式)
deb http://deb.debian.org/debian/ bookworm main contrib non-free
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free
# .sources 文件(DEB822 格式)
Types: deb
URIs: http://deb.debian.org/debian/
Suites: bookworm bookworm-updates
Components: main contrib non-free
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
deb / deb-src: 表示二进制包源(通常使用)或源码包源。
URI: 源的网络地址,支持 http://, https://, ftp://, file:// 等协议。
Suite: 发行版代号,如 bookworm(Debian 12), jammy(Ubuntu 22.04)。也可用 stable, testing 等分类名称。
Component:
Debian: main(核心自由软件) / contrib(依赖非自由软件的DSFG兼容软件) / non-free(非自由软件) / non-free-firmware(非自由固件)。
Ubuntu: main(官方支持) / restricted(官方支持的专有驱动) / universe(社区维护) / multiverse(非自由,需自行核实版权和合法性)。
3. Arch Linux (Pacman家族)
-
包管理器:
pacman -
配置文件:
-
镜像列表:
/etc/pacman.d/mirrorlist。顺序决定优先级,排在上面的镜像优先使用。 -
主配置文件:
/etc/pacman.conf,定义各个软件仓库并引用mirrorlist
-
- 核心配置格式:
# mirrorlist 文件
## 中国大陆
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
# pacman.conf 文件
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
-
Server: 镜像服务器地址,包含两个自动替换的变量:-
$repo: 仓库名 (core,extra,community,multilib)。 -
$arch: 系统架构 (如x86_64)。
-
-
Include: 在pacman.conf中用于引入mirrorlist文件。
-
[core](核心仓库):Arch 的命脉。包含启动系统、连接网络、管理硬盘、以及pacman包管理器本身所需的最基础软件包(如 Linux 内核、Glibc、Systemd 等)。这些包由核心开发团队严格维护,质量极高,一旦更新会直接影响系统根基。 -
[extra](附加仓库):Arch 的主力仓库。包含大量常用但非系统启动必需的软件,比如桌面环境(GNOME/KDE)、网页浏览器(Firefox)、办公套件、多媒体播放器等。绝大部分用户的日常使用都依赖这个仓库。 -
[multilib](多库仓库):专为 64位系统(x86_64) 准备的 32位(i686)软件库和兼容层。如果你需要运行 32 位程序(比如 Steam 游戏、Wine 跑 Windows 老软件),就必须启用它。
补充历史:以前还有个
[community]仓库(社区维护),但在 2023 年 Arch 已经把它合并进了[extra],所以现在你只需要关心上面这三个。
4.openSUSE (Zypper家族)
-
包管理器:
zypper -
配置文件: 一个或多个位于
/etc/zypp/repos.d/目录下的.repo文件。 -
核心配置格式:
[repo-oss] name=Main Repository (OSS) enabled=1 autorefresh=1 baseurl=https://mirrors.ustc.edu.cn/opensuse/tumbleweed/repo/oss/ path=/ type=rpm-md keeppackages=0 gpgcheck=1格式与YUM/DNF相似,但有一些特定选项如
autorefresh(是否自动刷新仓库元数据) 和type(仓库类型,rpm-md为常见)。
2.本地源与第三方源
本地源的两种形式
-
本地光盘源:挂载系统安装ISO镜像,将其路径作为源,适合安装光盘自带软件。
-
本地网络源:在企业内网中,可以搭建一个全量或部分镜像,供多台机器共享。这能有效减少出口带宽消耗,并实现统一的软件版本管理
第三方源
第三方源提供了官方仓库未收录的软件。以下是一些常用的第三方源及其用途:
-
EPEL (Extra Packages for Enterprise Linux):为 RHEL/CentOS 提供高质量附加软件包的标准补充库。
-
RPM Fusion:为 Fedora 和 RHEL 系列提供因法律或版权问题无法包含在官方源中的软件。
-
PPA (Personal Package Archives):Ubuntu Launchpad 平台上个人维护的软件源,为开发者分发软件和用户尝鲜提供了便利。
-
AUR (Arch User Repository):Arch 社区驱动的源代码PKGBUILD共享平台,用户可从中构建和安装软件包。
-
COPR (Cool Other Package Repo):Fedora 平台的个人软件包仓库。
-
OBS (Open Build Service):openSUSE 的开源构建服务平台,也是其个人软件包仓库。
3.国内镜像源与换源
由于官方服务器多在海外,访问速度可能较慢,我们可以配置国内的镜像源来加速。
介绍具体的换源方法。
-
Debian/Ubuntu 系:
-
备份:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak -
编辑:
sudo nano /etc/apt/sources.list -
替换: 将
archive.ubuntu.com或deb.debian.org替换为镜像地址,例如mirrors.ustc.edu.cn或mirrors.aliyun.com。 -
更新:
sudo apt update
-
-
RHEL/CentOS 系 (YUM/DNF):
-
备份:
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak -
编辑/下载: 可以直接编辑,或使用
wget下载镜像站提供的配置。 -
清理:
sudo yum clean all或sudo dnf clean all -
生成缓存:
sudo yum makecache或sudo dnf makecache
-
-
Arch Linux 系:
-
备份:
sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak -
编辑:
sudo nano /etc/pacman.d/mirrorlist -
操作: 将想使用的镜像服务器条目移到文件最顶端。
-
同步:
sudo pacman -Syy
-
-
openSUSE 系:
-
可以使用
sudo zypper mr -da禁用所有源。 -
使用
zypper ar -f <镜像URL> <别名>添加新源。 -
或使用
YaST图形工具,在Software Repositories模块中进行管理。
-
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://7d.delu7.cn/135/.html
共有 0 条评论