在Debian,Ubuntu中保留或阻止软件包升级

如您所知,我们可以使用 apt upgrade Debian,Ubuntu和其他基于Debian的系统中的命令。 在此升级过程中,将升级所有已安装的软件包,将安装一些其他软件包(即依赖项),并删除一些不必要的软件包。 Apt软件包管理器会自动执行所有这些操作,以帮助用户维护干净的系统。 Apt还具有防止在Debian,Ubuntu及其变体中自动安装,升级或删除软件包的选项。 在本指南中,我们将讨论在Debian,Ubuntu及其衍生版本(例如Linux Mint和Pop!_OS)中用于保留或阻止软件包升级的各种方法。

为什么有人要阻止软件包升级?

您可能想知道为什么有人要保留apt升级中的软件包。 将软件包更新到最新版本是否可以帮助我们保护系统安全? 当然可以! 但是您在某些情况下不想这样做。 以下是一些阻止软件包升级的原因:

  • 软件包的当前版本运行良好,因此您可能认为没有必要对其进行升级。
  • 另一个应用程序需要特定版本才能正常运行。
  • 您要更新的软件包可能有问题。 即使开发人员在将软件包推送到存储库之前对其进行了全面的测试,但有时他们可能会在不知不觉中推送不稳定的软件包,这将破坏您的系统。
  • 节省带宽。 您可能不希望更新消耗超过500 MB的软件包。

因此,无论原因是什么,如果您想防止软件包在Debian或Ubuntu系统中发生更改,那么本教程将对您有所帮助。

在Debian,Ubuntu中保留或阻止软件包升级

我们可以通过命令行或使用称为的图形化软件包管理实用程序来防止/保留/忽略/排除软件包的适当升级。 突触的 包裹经理。

首先,让我们看看命令行方法!

1.在Debian,Ubuntu中使用apt-mark命令防止软件包自动安装,升级或删除

标记 用于显示,设置和取消设置软件包的各种设置,例如将软件包标记为自动/手动安装或更改 dpkg 保留,安装,卸载和清除之类的选择,例如 apt-get dselect-upgrade 要么 aptitude

为防止软件包发生更改(安装,卸载和升级), apt-mark 命令提供以下三个子命令:

  1. 保持
  2. 解开
  3. 秀场

hold 命令用于将软件包标记为保留,这将阻止软件包被自动安装,升级或删除。

unhold 命令用于取消对软件包的先前设置的保留,以再次允许所有操作。

showhold 命令用于显示保留的软件包列表。

让我们来看一个例子。 我要防止包裹(例如 htop)使用以下命令自动安装,升级或删除:

$ sudo apt-mark hold htop

样本输出:

htop set on hold.

被锁 htop 即使升级系统后,软件包仍将保持相同的版本。

要显示保留的软件包,请运行:

$ sudo apt-mark showhold

要释放软件包,只需运行:

$ sudo apt-mark unhold htop

样本输出:

Canceled hold on htop.

防止使用apt-mark命令自动安装,升级或删除软件包

请注意 此方法不会阻止手动拆卸包装。 您仍然可以使用以下方法删除锁定的软件包 apt-get remove <packagename> 命令。

此方法仅防止在系统升级期间自动安装,更新,升级或删除该应用程序。 持有包裹实际上意味着您要告诉包裹管理者 即使有新版本,也无论如何都保持当前版本。 阻止图形驱动程序时,此技巧非常有用。 如果更新后当前正在运行的程序的最新版本中断,这也很有用。

每当您尝试使用命令更新系统时 sudo apt-get update 要么 sudo apt-get upgrade,标有标签的软件包在您持有该软件包时仍将是相同版本。

Apt-mark并不是阻止Debian或Ubuntu中软件包更改的唯一CLI实用程序。 还有两种方法可以将程序包置于保留状态,然后在以后从命令行取消保留它。

2.在Debian,Ubuntu中使用dpkg防止软件包升级

公斤 是用于安装,构建,删除和管理Debian软件包的命令行实用程序。

例如放入包装 停止,使用dpkg暂停,运行:

$ echo "htop hold" | sudo dpkg --set-selections

您可以查看之前搁置的包裹的状态,运行:

$ dpkg --get-selections | grep "htop"
htop						hold

如您所见,htop被暂停。

要查看所有软件包的状态,请运行:

$ dpkg --get-selections

要解压包装,请执行以下操作:

$ echo "htop install" | sudo dpkg --set-selections

在Debian,Ubuntu中使用dpkg阻止软件包升级

3.在Debian,Ubuntu中使用aptitude阻止软件包升级

才智 是Debian GNU / Linux软件包系统的基于文本的界面。 它允许用户执行各种软件包管理任务,例如安装,更新,升级,列出和删除软件包。

要搁置软件包并防止其自动升级,请运行:

$ sudo aptitude hold htop

要查看软件包的状态,请运行:

$ aptitude show htop

样本输出:

Package: htop                            
Version: 2.2.0-2build1
State: installed [held]
Automatically installed: no
Priority: optional
Section: utils
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 225 k
Depends: libc6 (>= 2.15), libncursesw6 (>= 6), libtinfo6 (>= 6)
Suggests: lsof, strace
Description: interactive processes viewer
 Htop is an ncursed-based process viewer similar to top, but it allows
 one to scroll the list vertically and horizontally to see all processes
 and their full command lines. 
 
 Tasks related to processes (killing, renicing) can be done without
 entering their PIDs.
Homepage: https://hisham.hm/htop/

如您在上面的输出中看到的,htop软件包正在升级中。

要解压包装,只需执行以下操作:

$ sudo aptitude unhold htop

在Debian,Ubuntu中使用aptitude阻止软件包升级在Debian,Ubuntu中使用aptitude阻止软件包升级

4.防止在Debian,Ubuntu中使用Synaptic软件包管理器自动安装,升级或删除软件包

如果你有 突触的 安装在系统上的软件包管理器中,您可以轻松地锁定软件包以免安装,更新,升级或删除软件包。

打开Synaptic管理器,然后搜索要保存的软件包。 然后点击 从菜单栏中,然后单击 保持

防止使用Synaptic软件包管理器自动安装,升级或删除软件包防止使用Synaptic软件包管理器自动安装,升级或删除软件包

而已。 现在,只要您保留它,就不会在系统升级过程中碰到该软件包。

要取消保留它,请转到 突触->包裹->解锁 版。

如果您的系统中未安装Synaptic软件包管理器,则可以使用以下命令进行安装:

$ sudo apt install synaptic

结论

在本教程中,您学习了如何防止在基于Debian的系统(例如Ubuntu,Linux Mint和Pop!_OS等)中自动安装,升级和删除软件包。虽然保留软件包在某些情况下可能会有所帮助,在Ubuntu系统中留下安全漏洞。 必须知道何时保留或取消保留包裹。 请谨慎使用此功能。 祝好运!

相关阅读:

  • 如何忽略软件包在Arch Linux中的升级

特色图片 erfouris工作室Pixabay

APTapt-getapt-markDebianLinuxLinux基础Linux命令包管理突触包管理器Ubuntu

Sidebar