apt-mark hold 是 apt 工具中用于锁定软件包版本、防止其被自动升级的命令。1. 通过 sudo apt-mark hold 包名 可锁定指定包;2. 使用 apt-mark showhold 可查看当前锁定的包;3. 执行 sudo apt-mark unhold 包名 可解除锁定。需要注意的是,锁定仅阻止自动升级,手动安装仍可覆盖;某些依赖复杂的场景可能引发升级冲突,建议定期检查锁定列表并评估影响范围。常见适用场景包括:生产与测试环境版本需保持一致、依赖特定版本避免兼容问题、或官方推送不稳定版本时临时锁定。

有时候你升级Debian系统的时候,某些软件更新后反而出问题。这时候你想固定某个版本不让它更新,最常用的方法就是用 apt-mark hold。

什么是 apt-mark hold?
apt-mark hold 是 APT 包管理工具提供的一个命令,用来“锁定”某个软件包的当前版本,防止它在执行 apt upgrade 或 apt full-upgrade 时被自动升级。

它的原理很简单:当你对某个包执行了这个命令,APT 就会把这个包标记为“保持状态”,除非你手动解除这个标记,否则系统不会更新它。
怎么使用 apt-mark hold?
操作其实非常简单,只需要几个命令就能搞定:

锁定某个包:
sudo apt-mark hold 包名
查看当前被锁定的包:
apt-mark showhold
取消锁定:
sudo apt-mark unhold 包名
举个例子,假设你正在用 nginx 1.18,但官方源更新到了 1.20,而你发现新版启动有问题,不想让它自动升级,就可以这样做:
sudo apt-mark hold nginx
这样以后执行 apt upgrade 的时候,nginx 就不会被升级了。
使用时需要注意哪些地方?
虽然这个功能很好用,但也有几个小细节容易忽略:
锁定只是阻止自动升级,并不影响你手动安装新版本如果你运行的是 apt install 包名,即使这个包被 hold 了,也会自动解除 hold 并安装最新版某些依赖关系复杂的场景下,hold 一个包可能会导致其他包无法升级或安装,需要特别留意提示信息
所以建议:
只锁定确实有必要保留旧版本的包定期检查有哪些包被 hold,避免遗漏升级前最好先看一眼有没有冲突或影响范围
什么时候适合用这个功能?
常见的使用场景包括:
测试环境和生产环境版本不一致,怕升级后行为变化某个服务依赖特定版本,升级后出现兼容性问题官方仓库推送了一个不稳定版本,想等修复后再更新
比如你用了某个 Python 库,开发的应用只兼容 3.8,但系统默认要升级到 3.9,这时候 hold 掉相关包就很实用。
基本上就这些,操作不复杂但很容易忽略一些副作用,用的时候多注意一下提示信息就行。
以上就是如何锁定Debian软件版本 apt-mark hold使用说明的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/28138.html
微信扫一扫
支付宝扫一扫