首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何禁止apt在dist-upgrade过程中移除某些包?

如何禁止apt在dist-upgrade过程中移除某些包?
EN

Stack Overflow用户
提问于 2016-11-25 16:28:54
回答 2查看 2K关注 0票数 3

有没有办法禁止apt (apt-get)在dist-upgrade过程中删除特定的包,但允许它升级/降级?

EN

回答 2

Stack Overflow用户

发布于 2016-11-26 05:46:58

为了防止升级特定的包,您应该将其搁置:

您可以使用以下命令来保存包:

代码语言:javascript
复制
sudo apt-mark hold package_name

代码语言:javascript
复制
sudo aptitude hold package_name

或者:

代码语言:javascript
复制
echo "package_name hold" | sudo dpkg --set-selections

要删除保留,应运行以下命令:

代码语言:javascript
复制
sudo apt-mark unhold package_name

代码语言:javascript
复制
sudo aptitude unhold package_name

代码语言:javascript
复制
echo "package_name install" | sudo dpkg --set-selections

将包列入黑名单:

您可以在/etc/apt/apt.conf.d/01autoremove下添加软件包,编辑文件,然后在Never-MarkAuto-Sections下添加所需的软件包

票数 0
EN

Stack Overflow用户

发布于 2020-06-21 22:10:00

我尝试了一个使用equiv的解决方案:

创建一个控制文件,如下所示:

代码语言:javascript
复制
Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: my-dummy-essential
Depends: emacs, kdenlive, firefox, kde-plasma-desktop, task-kde-desktop, task-french-kde-desktop, mypaint, keepassxc, tmux, zsh, openssh-client
Prerm: my-prerm
Description: just a package that refuse to be unistalled

Depends行应包含要保护的包的列表,

prerm行引用脚本(此处命名为my-prerm ):

代码语言:javascript
复制
#!/bin/sh -e
    
if [ "$1" != remove ]; then
    exit 0
fi
    
echo "are you sure about removing your essential package? (y/N)"
read i
if [ "x$i" = "xy" ]; then
   exit 0
fi
    
false

这个想法是这个prerm脚本将失败(除非您接受包的删除),这将阻止包及其依赖项的删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40800577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档