网站搜索

如何在 Debian 中启用 Backports 和 Testing 仓库


虽然 Debian 以其经过充分测试的软件包优先考虑稳定性,但这有时意味着用户会错过最新的功能。这就是 Backports 和 Testing 仓库 的用武之地。

回移端口(Backports)和测试存储库是 Debian 用来向用户提供比稳定版本中包含的更新软件版本的两种机制。

回溯端口提供从下一个 Debian 版本选择性回溯的包,提供稳定性与新功能之间的平衡。测试版提供使用范围更广的新包,但潜在的不稳定性更高。

本详细教程将指导您在 Debian 12 和 11 系统上启用 Backports 和 Testing 仓库的步骤。本指南还涵盖在不再需要 Backports 和 Testing 仓库时如何移除它们的步骤。

在进入主题之前,让我简要介绍一下回溯包和测试仓库,解释为什么以及何时应该启用它们,并讨论启用这些仓库的影响。

什么是回端库?

回移包 是来自下一个 Debian 版本(称为“不稳定”或“sid”)的软件包,这些包已经为当前的稳定版本重新编译。

回移端口的目的是向稳定版本的用户提供某些软件的更新版本,而不影响系统的稳定性。

回移版本旨在与稳定版本兼容,但它们不受 Debian 安全团队的官方支持,仅基于最大努力提供。

当用户想在不将整个系统升级到下一个 Debian 版本的情况下使用某些软件的较新版本时,他们通常会使用回溯包(backports)。

为什么使用回溯包?

  • 访问更新功能:Backports 允许用户访问在稳定版本中不可用的软件新功能和改进。
  • 安全更新:有时,软件的新版本包含未回移到稳定版本的重要安全更新。回移版本可以提供这些更新。
  • 开发需求:开发人员通常需要更新的软件版本来进行项目开发或使用最新的开发工具。

什么是测试存储库?

“Testing” 仓库包含正在为下一个稳定版本准备的软件包。这些软件包已经在“不稳定”仓库中存在一段时间,并且尚未发现有任何重大问题。

测试中的软件包通常比不稳定版的软件包更稳定,但它们没有像当前稳定版本的软件包那样经过彻底测试。

在默认情况下,Debian 系统上未启用测试仓库,但用户可以选择启用它,如果他们想使用比稳定版本中提供的软件更新,但又不如不稳定版本中的软件前沿。

为什么使用测试?

  • 访问更新的软件:测试版提供了对软件包更新版本的访问,这些版本最终将包含在下一个稳定的 Debian 版本中。
  • 贡献测试:用户可以通过测试测试存储库中的软件包并提供其性能和稳定性的反馈来为Debian做出贡献。
  • 早期采用:需要更新软件版本或希望参与测试的用户可以通过使用测试仓库获益。

哪一个是推荐的?

Backports 仓库 通常推荐给需要较新软件但希望保持整体系统稳定的多数用户。它通过有选择地提供更新的软件包,同时保持核心系统稳定,提供了良好的平衡。

测试仓库 适合那些需要使用最新技术并愿意接受一定不稳定性风险的用户。这通常用于需要最新功能和更新的开发者和测试人员。

  • 为了与更新的软件包保持稳定: 使用 backports 仓库。
  • 对于可能不稳定的前沿软件: 使用测试仓库。

根据您的需求以及您所工作的环境进行选择。

好吧!现在让我们继续看看如何在 Debian 上启用 backports 和 testing 仓库。

启用 Debian 回溯源

要在 Debian 中启用 Backports 存储库,请运行以下命令:

echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list.d/backports.list

更新源列表:

sudo apt update

或者,你可以使用以下单行命令:

sudo sh -c 'echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib non-free non-free-firmware" > /etc/apt/sources.list.d/backports.list && apt update'

这行命令将自动检测你的 Debian 版本并添加相应的回溯软件库。

解释:

  • $ (lsb_release -cs):此命令获取您的 Debian 版本的代号(例如,Debian 11 为 bullseye,Debian 12 为 bookworm)。
  • echo 命令构建 backports 仓库的行并将其写入 /etc/apt/sources.list.d/ 中的新文件。
  • sudo sh -c '... && apt update':以 root 权限运行命令并更新软件包列表。

启用 Debian 测试版仓库

如果你想在 Debian 中添加测试仓库,请运行:

echo "deb http://deb.debian.org/debian testing main contrib non-free non-free-firmware" | sudo tee /etc/apt/sources.list.d/testing.list

使用以下命令更新软件源:

sudo apt update

或者,使用以下一行命令:

sudo sh -c 'echo "deb http://deb.debian.org/debian testing main contrib non-free non-free-firmware" > /etc/apt/sources.list.d/testing.list && apt update'

这条单行命令将自动检测你的 Debian 版本并添加适当的测试存储库。

列出 Debian 上启用的仓库

要列出 Debian 系统中已启用的存储库,您可以检查主 sources.list 文件以及 /etc/apt/sources.list.d/ 目录中的任何附加文件。方法如下:

选项 1:使用 apt-cache policy

你可以使用 apt-cache policy 命令来列出所有已启用的仓库及其优先级和状态。

apt-cache policy

此命令将在 Debian 12 Bookworm 上显示类似如下的输出:

Package files:  
100 /var/lib/dpkg/status  
    release a=now  
100 http://deb.debian.org/debian bookworm-backports/non-free amd64 Packages  
    release o=Debian Backports,a=stable-backports,n=bookworm-backports,l=Debian Backports,c=non-free,b=amd64  
    origin deb.debian.org  
100 http://deb.debian.org/debian bookworm-backports/contrib amd64 Packages  
    release o=Debian Backports,a=stable-backports,n=bookworm-backports,l=Debian Backports,c=contrib,b=amd64  
    origin deb.debian.org  
100 http://deb.debian.org/debian bookworm-backports/main amd64 Packages  
    release o=Debian Backports,a=stable-backports,n=bookworm-backports,l=Debian Backports,c=main,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm-updates/non-free-firmware amd64 Packages  
    release v=12-updates,o=Debian,a=stable-updates,n=bookworm-updates,l=Debian,c=non-free-firmware,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm-updates/non-free amd64 Packages  
    release v=12-updates,o=Debian,a=stable-updates,n=bookworm-updates,l=Debian,c=non-free,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm-updates/contrib amd64 Packages  
    release v=12-updates,o=Debian,a=stable-updates,n=bookworm-updates,l=Debian,c=contrib,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm-updates/main amd64 Packages  
    release v=12-updates,o=Debian,a=stable-updates,n=bookworm-updates,l=Debian,c=main,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian-security bookworm-security/non-free-firmware amd64 Packages  
    release v=12,o=Debian,a=stable-security,n=bookworm-security,l=Debian-Security,c=non-free-firmware,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian-security bookworm-security/contrib amd64 Packages  
    release v=12,o=Debian,a=stable-security,n=bookworm-security,l=Debian-Security,c=contrib,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages  
    release v=12,o=Debian,a=stable-security,n=bookworm-security,l=Debian-Security,c=main,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm/non-free-firmware amd64 Packages  
    release v=12.5,o=Debian,a=stable,n=bookworm,l=Debian,c=non-free-firmware,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm/non-free amd64 Packages  
    release v=12.5,o=Debian,a=stable,n=bookworm,l=Debian,c=non-free,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm/contrib amd64 Packages  
    release v=12.5,o=Debian,a=stable,n=bookworm,l=Debian,c=contrib,b=amd64  
    origin deb.debian.org  
500 http://deb.debian.org/debian bookworm/main amd64 Packages  
    release v=12.5,o=Debian,a=stable,n=bookworm,l=Debian,c=main,b=amd64  
    origin deb.debian.org  
Pinned packages:

选项 2:列出 sources.list 和 sources.list.d 目录

你也可以手动检查 sources.list 文件以及 sources.list.d 目录中的文件,以查看启用了哪些仓库。

查看 sources.list:

cat /etc/apt/sources.list

这将显示主 sources.list 文件的内容,该文件通常包含在 Debian 安装过程中配置的源。

列出 sources.list.d 目录:

ls /etc/apt/sources.list.d

此命令列出 sources.list.d 目录中的所有文件,每个文件都包含额外的源配置。

查看仓库内容:

cat /etc/apt/sources.list.d/backports.list

示例输出 来自我的 Debian 12:

deb http://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware

如何从回溯库安装软件包

在添加了 Backports 仓库后,你可以使用 apt 或 apt-get 的 -t 选项从 backports 安装软件包。

例如:

sudo apt update
sudo apt install -t bookworm-backports package-name

将 bookworm-backports 替换为您的实际仓库名称,将 package-name 替换为您的实际软件包名称。

例如,以下命令将在 Debian 12 中从 Backports 仓库安装 curl 软件包:

sudo apt install -t bookworm-backports curl

同样,你可以像下面这样在 Debian 11 上从 Backports 仓库安装软件包:

sudo apt install -t bullseye-backports curl

将所有软件包升级到 Backports 中可用的最新版本(不推荐)

如果你想将系统上的所有软件包升级到回溯仓库中可用的最新版本,你可以使用以下命令:

sudo apt full-upgrade -t bookworm-backports 

此命令将升级所有已安装的软件包到 bookworm-backports 中可用的最新版本,可能会安装新的依赖项并删除过时的软件包,以确保系统兼容性和功能。

小心:

  • 这个命令应谨慎使用,因为它可能会将大量软件包升级到回溯版本,这可能会影响系统稳定性。
  • 通常从回溯库安装特定的软件包比将整个系统升级到回溯版本更安全。
  • 在进行像这样的重大系统更改之前,请务必确保你有备份。

在运行此类命令之前,最好先查看它将进行的更改:

sudo apt full-upgrade -t bookworm-backports --dry-run

这个 --dry-run 选项允许你查看将会进行哪些更改,而不实际应用它们,帮助你避免意外情况。

检查回溯仓库中的软件包版本

要在 Debian 上检查 backports 仓库中软件包的可用版本,您可以使用 apt 和 apt-cache 命令。

1. 更新软件包列表:

首先,确保你的软件包列表已更新,以包含所有存储库的最新信息:

sudo apt update

2. 使用 apt 检查可用版本:

您可以使用 apt 命令列出软件包的可用版本,包括来自 backports 仓库的版本。例如,要查看 curl 软件包的可用版本:

apt list -a curl

此命令将显示来自所有启用的存储库(包括回溯库)的所有可用 curl 版本。

Listing... Done  
curl/stable-backports,now 8.8.0-1~bpo12+1 amd64 [installed]  
curl/stable,stable-security 7.88.1-10+deb12u5 amd64

3. 使用 apt-cache 查看详细信息:

有关更详细的信息,您可以使用 apt-cache 命令。这将显示可用的版本及其对应的仓库。例如:

apt-cache policy curl

此命令提供有关可用的 curl 软件包版本及其所属存储库的详细信息。您将看到类似如下的输出:

curl:  
 Installed: 8.8.0-1~bpo12+1  
 Candidate: 8.8.0-1~bpo12+1  
 Version table:  
*** 8.8.0-1~bpo12+1 100  
       100 http://deb.debian.org/debian bookworm-backports/main amd64 Packages  
       100 /var/lib/dpkg/status  
    7.88.1-10+deb12u5 500  
       500 http://deb.debian.org/debian bookworm/main amd64 Packages  
       500 http://deb.debian.org/debian-security bookworm-security/main amd64 Packages

在此示例中,curl 版本 8.8.0-1~bpo12+1 可从 bookworm-backports 仓库获得。

通过使用这些命令,您可以查看软件包在回溯库中可用的版本,并决定是否安装回溯版本。

EnableBackports:一个用于检查并启用回溯库的 Bash 脚本

我创建了一个小的 Bash 脚本,可以帮助你在 Debian Linux 系统中检查并启用 Backports。

该脚本执行以下操作:

  • 该脚本通过在 /etc/apt/sources.list 和 /etc/apt/sources.list.d/* 中搜索 Backports 仓库的 URL 来检查 Backports 仓库是否已启用。
  • 如果找到,它会打印一条消息并退出。
  • 如果未找到 Backports 仓库,脚本会提示用户启用它。
  • 如果用户回答“yes”(或任何大小写不敏感的“yes”变体),脚本会将相应的回溯库(Backports)仓库 URL 添加到 /etc/apt/sources.list.d/backports.list。
  • 添加仓库后,脚本使用 sudo apt-get update 更新软件包列表。
  • 如果用户回应“否”,脚本将打印一条消息并退出。

启用 Backports 脚本可在 OSTechNix GitHub Gist 主页 上获取。您可以下载、修改并使用它。

如何使用脚本

1. 使用 curl 或 wget 下载 Gist:

使用 curl:

curl -O https://gist.githubusercontent.com/ostechnix/2a5b36177a10a12d868ce755e658905e/raw/43c9e36089fb5b4cd2879cf0f159659e1f56a591/enablebackports.sh

使用 wget:

wget https://gist.githubusercontent.com/ostechnix/2a5b36177a10a12d868ce755e658905e/raw/43c9e36089fb5b4cd2879cf0f159659e1f56a591/enablebackports.sh

2. 使脚本可执行:

chmod +x enablebackports.sh

3. 使用 sudo 或 root 权限运行脚本:

sudo ./enablebackports.sh 

如果 Backports 已经启用,它将打印以下消息并退出:

Backports is already enabled in your system.

如果 backports 尚未启用,它会提示你是否要启用它。如果你输入 y(或任何大小写不敏感的“y”或“yes”变体),脚本将自动添加 Backports 仓库并更新源列表。

Backports repository is not enabled. Do you want to enable it? (yes/no): YeS  
deb http://deb.debian.org/debian bookworm-backports main contrib non-free  
Hit:1 http://deb.debian.org/debian bookworm InRelease  
Hit:3 http://deb.debian.org/debian-security bookworm-security InRelease                                
Hit:4 http://deb.debian.org/debian bookworm-updates InRelease                                          
Get:5 http://deb.debian.org/debian bookworm-backports InRelease [56.6 kB]                              
Get:6 http://deb.debian.org/debian bookworm-backports/main amd64 Packages [225 kB]                                                                                       
Get:7 http://deb.debian.org/debian bookworm-backports/main Translation-en [185 kB]            
Get:8 http://deb.debian.org/debian bookworm-backports/contrib amd64 Packages [5,392 B]                   
Get:9 http://deb.debian.org/debian bookworm-backports/contrib Translation-en [5,084 B]                          
Get:10 http://deb.debian.org/debian bookworm-backports/non-free amd64 Packages [1,640 B]                              
Get:11 http://deb.debian.org/debian bookworm-backports/non-free Translation-en [904 B]                           
Hit:2 https://packages.kopia.io/apt stable InRelease                                                               
Hit:12 https://repo.protonvpn.com/debian stable InRelease                     
Fetched 480 kB in 2s (290 kB/s)  
Reading package lists... Done  
Building dependency tree... Done  
Reading state information... Done  
All packages are up to date.  
Backports repository has been enabled in your system!

如前一节所述,您现在可以从 Backports 仓库安装软件包。

移除回溯库

以下命令会删除特定于您 Debian 版本的 backports 存储库文件,然后更新软件包列表以反映存储库的删除。

sudo rm /etc/apt/sources.list.d/backports.list && sudo apt update

移除测试仓库

如果你已经添加了测试仓库,你可以使用以下命令从你的 Debian 系统中将其移除:

sudo rm /etc/apt/sources.list.d/testing.list && sudo apt update

此命令会删除测试仓库文件并更新软件包列表以反映仓库的移除。

常见问题解答 (FAQ)

1. Debian 中的回移包和测试仓库是什么?

  • 回溯端口仓库:包含已重新编译以在稳定的 Debian 版本上运行而不影响其稳定性的软件包的新版本。它允许用户访问稳定版本中不可用的新功能和改进。
  • 测试仓库:包含正在评估是否纳入下一次稳定版 Debian 发布的包。该仓库提供对经过一定测试以确保符合 Debian 质量标准的新软件版本的访问。

2. 我为什么需要 Backports 仓库?

  • 访问更新的软件:在保持 Debian 系统整体稳定性的同时,获取软件包的更新版本。
  • 安全更新:回溯版本中的某些软件包可能包含稳定版本中不可用的重要安全更新。
  • 发展需求:特定项目需要使用更新的开发工具和功能。

3. 我为什么需要测试仓库?

  • 前沿软件:访问 Debian 中提供的所有软件包的最新版本。
  • 为 Debian Testing 做贡献:帮助测试并提供即将包含在下一个稳定版本中的软件包的反馈。
  • 早期采用:非常适合开发和测试环境,在这些环境中,拥有最新的软件比绝对稳定性更为关键。

4. 我如何启用 Backports 仓库?

打开终端并运行以下命令以在 Debian 中添加 backports 仓库:

echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list

更新软件包列表:

sudo apt update

5. 我如何启用测试仓库?

运行以下命令以在 Debian 中添加测试存储库:

echo "deb http://deb.debian.org/debian testing main contrib non-free" | sudo tee /etc/apt/sources.list.d/testing.list

更新软件包列表:

sudo apt update

6. 我如何从 Backports 仓库安装软件包?

使用 -t 选项后跟 backports 的代号来安装软件包。例如,要从 backports 安装 vim:

sudo apt install -t bookworm-backports vim

7. 我如何移除 Backports 仓库?

要删除 backports 源文件,请运行:

sudo rm /etc/apt/sources.list.d/backports.list

更新软件包列表:

sudo apt update

8. 我如何删除测试仓库?

要删除测试仓库文件,请运行:

sudo rm /etc/apt/sources.list.d/testing.list

更新软件包列表:

sudo apt update

9. 我如何检查已启用的仓库?

要列出所有已启用的存储库,请使用以下命令:

apt-cache policy

要手动检查仓库文件,您可以列出并查看 sources.list 和 sources.list.d 目录的内容:

cat /etc/apt/sources.list
ls /etc/apt/sources.list.d

结论

通过启用 Backports 和 Testing 仓库,您可以在 Debian 12 Bookworm 系统上安装更新的软件。Backports 在稳定性和新功能之间提供了一个很好的折中,而 Testing 提供最新的软件,但可能存在不稳定的情况。

请记住,稳定性是 Debian 的核心原则。如果稳定性是您的首要考虑,最好坚持使用官方的 Debian 仓库。只有在您特别需要更新的软件且已经准备好可能遇到错误时,才启用这些仓库。

我希望本教程能帮助你理解如何在 Debian Linux 中启用回溯和测试仓库。

如果您有任何进一步的问题,请随时通过下面的评论区提问。

相关阅读:

  • 如何检查 Debian 和 Ubuntu 仓库中的软件包可用性
  • 如何从命令行在 Linux 中查找已安装的仓库列表