使用 testing 版本#
| 文件 | 功能 | 结果 |
|---|
/etc/apt/sources.list.d/debian.sources | 指定下载地址和分支 | 让 apt 知道去 testing 源获取包 |
/etc/apt/preferences.d/00default-release | 定义优先级策略 | 确保 apt 默认选择 testing 包,不会跑去 stable |
1. 编辑配置文件,编辑完成后请记得保存.#
路径: /etc/apt/sources.list.d/debian.sources
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # Debian Testing main repo
Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Debian Testing updates
Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Debian Testing security
Types: deb
URIs: http://security.debian.org/debian-security/
Suites: testing-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
语法解释
Types: deb
指定仓库类型是二进制包(普通软件包),而不是源码包 deb-src。
URIs:
软件源的 URL,http://deb.debian.org/debian/ 是官方推荐的全球镜像地址,支持 CDN 加速。
Suites: testing
指定分支是 testing,意味着跟随未来 Debian 14(Forky)的滚动更新。
Components:
仓库组件:
Signed-By:
指定验证签名的 GPG 密钥文件路径,确保仓库来源可信。
1
2
3
4
5
6
7
8
9
| # Debian Testing updates
...
Suites: testing-updates
...
# Debian Testing security
...
Suites: testing-security
...
|
总结
debian.sources 决定了 APT 从哪些仓库下载包,让系统源始终指向 testing、testing-updates 和 testing-security。
路径: /etc/apt/preferences.d/00default-release
1
2
3
| Package: *
Pin: release a=testing
Pin-Priority: 900
|
语法解释
Package: *
作用于所有软件包,不限范围。
Pin: release a=testing
release a=testing 表示匹配所有属于 testing 分支 的包。
Pin-Priority: 900
设置 testing 仓库优先级为 900。
APT 优先级规则
| 优先级范围 | 行为 |
|---|
| <0 | 禁止安装 |
| 1-99 | 只有手动指定才会安装 |
| 100-499 | 不会主动升级,但保持已安装状态 |
| 500 | 默认优先级(适用于当前稳定版本) |
| >500 | 优先选择这个版本 |
| 1000+ | 即使需要降级,也强制安装 |
900 的效果:
默认总是选择 testing 仓库的包
但不会盲目覆盖你手动锁定版本的包
保证系统滚动升级保持 testing
2. 更新索引 & 升级系统#
1
| apt update && apt full-upgrade
|
使用脚本: 创建&检测 Apt Source - testing 版本#
1. 创建脚本#
使用下面命令创建脚本:
1
| vi /usr/local/bin/check-debian-branch.sh
|
脚本内容:
贴上脚本内容后,请记得保存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| #!/bin/bash
# Check Debian branch and switch to testing if needed
SOURCES_FILE="/etc/apt/sources.list.d/debian.sources"
PREF_FILE="/etc/apt/preferences.d/00default-release"
echo "正在检查当前 Debian 分支..."
CURRENT_BRANCH=$(grep -E "^Suites:" "$SOURCES_FILE" | awk '{print $2}' | head -n 1)
if [[ "$CURRENT_BRANCH" == "testing" ]]; then
echo "✅ 当前系统已经是 Debian testing 分支。"
exit 0
else
echo "⚠ 当前系统分支为: $CURRENT_BRANCH"
read -rp "是否切换到 Debian testing 分支? (Y/N): " CONFIRM
if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then
echo "正在切换到 Debian testing 分支..."
# 写入 sources.list.d/debian.sources
cat <<EOF | sudo tee "$SOURCES_FILE" > /dev/null
# Debian Testing main repo
Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Debian Testing updates
Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Debian Testing security
Types: deb
URIs: http://security.debian.org/debian-security/
Suites: testing-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF
# 写入 pinning
sudo mkdir -p /etc/apt/preferences.d
cat <<EOF | sudo tee "$PREF_FILE" > /dev/null
Package: *
Pin: release a=testing
Pin-Priority: 900
EOF
echo "🔄 更新软件包索引..."
sudo apt update
echo "✅ 系统已切换为 Debian testing 分支。"
else
echo "❌ 已取消切换操作。"
fi
fi
|
这个脚本会检测 /etc/apt/sources.list.d/debian.sources中的内容,如果不包含testing,会创建下面两个文件:
查看 /etc/apt/sources.list.d/debian.sources
路径:
/etc/apt/sources.list.d/debian.sources
内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # Debian Testing main repo
Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Debian Testing updates
Types: deb
URIs: http://deb.debian.org/debian/
Suites: testing-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Debian Testing security
Types: deb
URIs: http://security.debian.org/debian-security/
Suites: testing-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
查看 /etc/apt/preferences.d/00default-release
路径:
/etc/apt/preferences.d/00default-release
内容:
1
2
3
| Package: *
Pin: release a=testing
Pin-Priority: 900
|
2. 赋予执行权限#
1
| chmod +x /usr/local/bin/check-debian-branch.sh
|
3. 运行#
1
| bash check-debian-branch.sh
|