在没有APT Pin的情况下从更新中保留包裹?

我知道用Apt固定包裹。 那不是我想要做的。 使用钉扎或暂时使用引脚已经回答了其他问题。 我不想这样做。

我想要做的是保持包的内核与内核一样:

# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: linux-generic-pae linux-headers-generic-pae linux-image-generic-pae The following packages will be upgraded: 

我想在这个列表中添加tomcat-*tomcat-*以及sun-* 。 在过去,有一个配置参数来执行此操作。 我一直认为这是像Apt::Get::HoldPkgsApt::HoldPkgs但我找不到它。

我希望从更新中获取这些包,直到我通过apt-get install专门请求它们。

我找到了apt-get配置Apt::NeverAutoRemove 。 这会做我想要的吗?

补充问题:我注意到, Apt::NeverAutoRemoveApt::NeverAutoRemoveApt::Never-MarkAuto-Sections (以及其他)都没有记录。 它们不在联机帮助页中。 既不是aptitude::Keep-Unused-Patternaptitude::Get-Root-Command

apt.conf有没有全面而完整的文档?

答案是使用dpkg --set-selections 。 如果运行命令dpkg --get-selections ,则可以看到已设置的内容:

 $ dpkg --get-selections | head acct install adduser install apparmor install apparmor-utils install apt install apt-transport-https install apt-utils install aptitude install at install auditd install 

在这种情况下,请考虑包dnsutils

 $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: bind9-host dnsutils libbind9-60 libdns64 libisc60 libisccc60 libisccfg60 liblwres60 8 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 1,257kB of archives. After this operation, 0B of additional disk space will be used. Do you want to continue [Y/n]? n Abort. 

现在让我们改变它 – 把包裹搁置:

 $ echo dnsutils hold | sudo dpkg --set-selections 

检查结果:

 $ dpkg --get-selections | grep dnsutils dnsutils hold 

再次尝试更新:

 $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: bind9-host dnsutils libbind9-60 libdns64 libisc60 libisccfg60 liblwres60 The following packages will be upgraded: libisccc60 1 upgraded, 0 newly installed, 0 to remove and 7 not upgraded. Need to get 29.9kB of archives. After this operation, 0B of additional disk space will be used. Do you want to continue [Y/n]? n Abort. 

现在,正如我们所希望的那样, dnsutils及其相关软件包正在被阻止。

来自APT-MARK的手册页

 APT-MARK(8) APT APT-MARK(8) NAME apt-mark - show, set and unset various settings for a package SYNOPSIS apt-mark {-f=filename | {auto | manual} pkg... | {showauto | showmanual} [pkg...] } | {-v | --version} | {-h | --help} apt-mark {hold | unhold | install | remove | purge} pkg... | {showhold | showinstall | showremove | showpurge} [pkg...] DESCRIPTION apt-mark can be used as a unified front-end to set various settings for a package, such as marking a package as being automatically/manually installed or changing dpkg selections such as hold, install, deinstall and purge which are respected eg by apt-get dselect-upgrade or aptitude. AUTOMATICALLY AND MANUALLY INSTALLED PACKAGES When you request that a package is installed, and as a result other packages are installed to satisfy its dependencies, the dependencies are marked as being automatically installed, while the package you installed explicitly is marked as manually installed. Once an automatically installed package is no longer depended on by any manually installed package it is considered no longer needed and eg apt-get or aptitude will at least suggest removing them. auto auto is used to mark a package as being automatically installed, which will cause the package to be removed when no more manually installed packages depend on this package. manual manual is used to mark a package as being manually installed, which will prevent the package from being automatically removed if no other packages depend on it. showauto showauto is used to print a list of automatically installed packages with each package on a new line. All automatically installed packages will be listed if no package is given. If packages are given only those which are automatically installed will be shown. showmanual showmanual can be used in the same way as showauto except that it will print a list of manually installed packages instead. Options -f=filename, --file=filename Read/Write package stats from the filename given with the parameter filename instead of from the default location, which is extended_status in the directory defined by the Configuration Item: Dir::State. PREVENT CHANGES FOR A PACKAGE hold hold is used to mark a package as held back, which will prevent the package from being automatically installed, upgraded or removed. unhold unhold is used to cancel a previously set hold on a package to allow all actions again. showhold showhold is used to print a list of packages on hold in the same way as for the other show commands. SCHEDULE PACKAGES FOR INSTALL, REMOVE AND PURGE Some front-ends like apt-get dselect-upgrade can be used to apply previously scheduled changes to the install state of packages. Such changes can be scheduled with the install, remove (also known as deinstall) and purge commands. Packages with a specific selection can be displayed with showinstall, showremove and showpurge respectively. More information about these so called dpkg selections can be found in dpkg(1). OPTIONS -h, --help Show a short usage summary. -v, --version Show the program version. -c, --config-file Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. If configuration settings need to be set before the default configuration files are parsed specify a file with the APT_CONFIG environment variable. See apt.conf(5) for syntax information. -o, --option Set a Configuration Option; This will set an arbitrary configuration option. The syntax is -o Foo::Bar=bar. -o and --option can be used multiple times to set different options. FILES /var/lib/apt/extended_states Status list of auto-installed packages. Configuration Item: Dir::State::extended_states. SEE ALSO apt-get(8),aptitude(8),apt.conf(5) DIAGNOSTICS apt-mark returns zero on normal operation, non-zero on error. BUGS APT bug page[1]. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command. AUTHORS Mike O'Connor APT team NOTES 1. APT bug page http://bugs.debian.org/src:apt APT 1.2.10 25 September 2015 APT-MARK(8)