有没有办法禁止apt (apt-get)在dist-upgrade过程中删除特定的包,但允许它升级/降级?
发布于 2016-11-26 05:46:58
为了防止升级特定的包,您应该将其搁置:
您可以使用以下命令来保存包:
sudo apt-mark hold package_name或
sudo aptitude hold package_name或者:
echo "package_name hold" | sudo dpkg --set-selections要删除保留,应运行以下命令:
sudo apt-mark unhold package_name或
sudo aptitude unhold package_name或
echo "package_name install" | sudo dpkg --set-selections将包列入黑名单:
您可以在/etc/apt/apt.conf.d/01autoremove下添加软件包,编辑文件,然后在Never-MarkAuto-Sections下添加所需的软件包
发布于 2020-06-21 22:10:00
我尝试了一个使用equiv的解决方案:
创建一个控制文件,如下所示:
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 unistalledDepends行应包含要保护的包的列表,
prerm行引用脚本(此处命名为my-prerm ):
#!/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脚本将失败(除非您接受包的删除),这将阻止包及其依赖项的删除。
https://stackoverflow.com/questions/40800577
复制相似问题