Apt 工具是一种基于 Debian 的 Linux 发行版(如Ubuntu )中使用的高级包管理系统,可让您轻松安装、更新和删除软件包。
最初,APT被设计为dpkg处理软件包的前端.deb。此后,它已在 macOS、OpenSolaris 和其他系统上获得关注。
想要学习和掌握用于管理 Debian 包管理的APT和DPKG 命令吗?使用我们的深入文章,其中涵盖了这两种工具的 30 多个示例。
在本文中,我们将探讨在 Debian Linux 及其衍生产品(如 Ubuntu 和 Linux Mint)中禁用或锁定软件包安装、升级或删除的各种技术。
1.使用 Apt-mark 锁定软件包
该apt-mark命令将标记或取消标记软件包为自动安装,并与选项hold或一起使用unhold。
hold– 此选项用于将软件包标记为保留,这将阻止该软件包被安装、升级或删除。
unhold– 此选项用于删除先前设置的软件包保留,以允许安装、升级或删除该软件包。
在 Ubuntu 中锁定软件包
例如,要使某个软件包apache2无法安装、升级或卸载,您可以在具有 root 权限的终端中使用以下命令:
sudo apt-mark hold apache2
要检查包是否成功锁定,请运行:
apt-mark showhold
此命令将显示当前锁定的所有包的列表。
在 Ubuntu 中解锁软件包
如果您决定再次允许更新该软件包,您可以使用以下命令解锁:
sudo apt-mark unhold apache2
2. 使用 APT 偏好设置阻止软件包更新
阻止特定软件包更新的另一种方法是将其条目添加到/etc/apt/preferences或/etc/apt/preferences.d/referencefile文件中,该条目可以是任何文件,它负责根据用户指定的优先级更新或阻止某些软件包更新。
要阻止该包,请在目录中创建一个新文件/etc/apt/preferences.d/。
sudo nano /etc/apt/preferences.d/no-updates
在该文件中,添加以下行来指定要列入黑名单的包:
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
选项说明:
o=Ubuntu:这指定固定适用于源自 Ubuntu 发行版的软件包。
Pin-Priority: 1:设置优先级 1 可以有效地阻止更新,因为任何具有更高优先级的包都将优先。
您可以使用各种关键字进一步细化您的置顶标准:
a:存档(例如,a=stable、a=testing)
c:组件(例如,c=main、c=universe)
o:起源(例如,o=Debian、o=Ubuntu)
l:标签(用于特定存储库标签)
n:架构(例如,n=amd64)
保存首选项文件后,运行以下命令来更新您的软件包列表。
sudo apt update
3. 使用 APT 自动删除文件将软件包更新列入黑名单
要使用APT autoremove 文件将软件包更新列入黑名单,您可以创建特定配置,以防止在系统清理操作期间删除某些软件包。
您需要99autoremove在/etc/apt/apt.conf.d/目录中创建或编辑一个文件,因为该文件将指定要保留哪些包。
sudo nano /etc/apt/apt.conf.d/99autoremove
在该文件中,添加以下行来指定要列入黑名单以防止自动删除的软件包:
Apt::NeverAutoRemove {
"apache2";
};
添加必要的行后,运行以下命令来更新您的软件包列表并确保您的更改生效:
sudo apt update
要验证软件包是否已成功列入黑名单,您可以尝试运行该apt autoremove命令以查看列入黑名单的软件包是否不应出现在将要删除的软件包列表中。
sudo apt autoremove
如果您在列表中看到您列入黑名单的软件包(如apache2),则表明配置未正确应用。如果没有出现,则表示黑名单已成功。
4. 将源列表中的软件包列入黑名单
您还可以通过修改源列表将包列入黑名单,但这种方法不太常见,通常不推荐,而且这种方法涉及注释掉提供该包的存储库。
在文本编辑器中打开源列表文件。
sudo nano /etc/apt/sources.list
找到包含要列入黑名单的包的存储库的行,然后在行开头添加#将其注释掉。
# deb http://archive.ubuntu.com/ubuntu/ focal main restricted
最后,运行以下命令来更新您的软件包列表:
sudo apt update
5. 升级期间避免更新
如果您想在执行系统升级时暂时避免更新,可以使用以下–no-upgrade选项:
sudo apt upgrade --no-upgrade apache2
这将升级除您指定的软件包之外的所有软件包。
结论
使用Apt工具禁用、锁定或将包更新列入黑名单是一个简单的过程,可让您更好地控制 Linux 系统。
无论您选择使用apt-mar k锁定软件包、使用APT 首选项还是修改源列表,每种方法都可以根据您的需要实现其用途。