我知道使用 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-*
和mysql-*
和添加sun-*
到此列表中。过去,有一个配置参数可以执行此操作。我一直以为它是Apt::Get::HoldPkgs
或之类的东西,Apt::HoldPkgs
但我找不到它。
我希望这些包不进行更新,直到我使用 特别请求它们为止apt-get install
。
我找到了apt-get
配置Apt::NeverAutoRemove
。这会满足我的要求吗?
补充问题:我注意到,据我所知,Apt::NeverAutoRemove
和(以及其他)没有记录。它们不在手册页中。和也没有。Apt::Never-MarkAuto-Sections
aptitude::Keep-Unused-Pattern
aptitude::Get-Root-Command
有没有全面而完整的文档apt.conf
?
答案1
答案是使用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
——以及其相关包裹——正被扣留,正如我们所希望的那样。
答案2
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 e.g. 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 e.g.
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)