将软件包列入黑名单

我正在运行10.10并删除了一个包。

我担心在升级时,synaptic可能会再次安装该软件包。 有没有办法将一个即使通过分发升级工作的软件包列入黑名单?

就我而言,包是单声道的。

答案很简单:

使用apt-get ,synaptic包管理器或软件中心删除不需要的包。 通过发出命令打开APT的01autoremove文件

 sudo -H gedit /etc/apt/apt.conf.d/01autoremove 

导航到标题为Never-MarkAuto-Sections的部分的底部,并在该部分中添加一个条目。 在我的情况下阻止GRUB我输入了grub.* ;. 修改后的文件的内容位于此页面的底部。

您将输入包名称或包名称的一部分,包括使用.*表示任何字符。 在我的例子中, grub.*阻止所有以grub开头的包。

下次打开更新实用程序时,它不会显示升级或更新您选择阻止的软件的选项。

我的/etc/apt/apt.conf.d/01autoremove文件:

 APT { NeverAutoRemove { "^linux-firmware$"; "^linux-image.*"; "^linux-restricted-modules.*"; "^linux-ubuntu-modules-.*"; }; Never-MarkAuto-Sections { "metapackages"; "restricted/metapackages"; "universe/metapackages"; "multiverse/metapackages"; "oldlibs"; "restricted/oldlibs"; "universe/oldlibs"; "multiverse/oldlibs"; "grub.*"; }; }; 

您可以将自己的单声道包装为空,并将版本设置为疯狂。

有时这会产生解决问题的问题

我不确定APT :: NeverMarkAuto究竟做了什么,是否阻止它被考虑用于依赖解析。

编辑/ etc / apt / preferences并输入:

 Package: mono Pin: version * Pin-Priority: -10 

(警告,我没有测试过。即使它确实有效,这可能会阻止你手动安装它。)

apt_preferences(5)手册页中有更多文档。

注释行前缀为Explanation: 。 Package:字段不支持通配符; Package: *在某些例子中用于特殊情况。

我没有使用偏好,因为我停止尝试将来自intrepid-backports的一些软件包与来自karmic的其他软件包(在它发布之前),或者从Debian repos或从Medibuntu与Ubuntu发布的软件包混合。 使用首选项固定可以使apt / aptitude /等。 决定除最高版本编号版本之外的某个版本是最好的安装版本,或者它不需要升级。

无论如何,我只是将aptitude用于我的所有软件包管理,它比我在liveCD或默认安装上看到的任何简单的GUI要好得多。 在标记要安装的东西之后,如果有大量的东西它会通过recommends:拉入recommends: ,我会在给予最终批准之前取消标记这些东西。