From e7d4e0cf4f6d79810e4b4e7de505729e759213dd Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 8 Jul 2016 09:40:46 +0200 Subject: select remove/purge packages early on for dpkg Telling dpkg early on that we are going to remove these packages later helps it with auto-deconfiguration decisions and its another area where a planner can ignore the nitty gritty details and let dpkg decide the course of action if there are no special requirements. --- doc/external-installation-planner-protocol.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/external-installation-planner-protocol.txt b/doc/external-installation-planner-protocol.txt index 44fa8ff53..4bad9da0a 100644 --- a/doc/external-installation-planner-protocol.txt +++ b/doc/external-installation-planner-protocol.txt @@ -248,7 +248,9 @@ before it was unpacked, dependency relations must be satisfied, …), but they don't need to be complete: A planner can and should expect that any package which wasn't explicitly configured will be configured at the end automatically. That also means through that a planner is not allowed to -produce a solution in which a package remains unconfigured. +produce a solution in which a package remains unconfigured. Also, +packages which are requested to be removed will be automatically removed +at the end if not marked for removal explicitly earlier. In terms of expressivity, all stanzas can carry one single field each, as APT-IDs are enough to pinpoint packages to be installed/removed. -- cgit v1.2.3 From 28557f94578602f9ce0011501a2259bd98ab0688 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 28 Jul 2016 09:13:24 +0200 Subject: disable explicit configuration of all packages at the end With b4450f1dd6bca537e60406b2383ab154a3e1485f we dropped what we calculated here later on and now that we don't need it in the meantime either we can just skip the busy work by default and expect dpkg to do the right thing dropping also our little "last explicit configures" removal trick introduced in b4450f1dd6bca537e60406b2383ab154a3e1485f. This enables the last of a bunch of previously experimental options, some of them existing still, but are very special and hence not really worth documenting anymore (especially as it would need to be rewritten now entirely) which is why the documentation is nearly completely dropped. The order of configuration stanzas in the simulation code changes slightly as it isn't concerning itself with finding the 'right' order, but any order is valid anyhow as long as the entire set happens in the same call. --- doc/apt.conf.5.xml | 84 +++++------------------------------------------------- 1 file changed, 7 insertions(+), 77 deletions(-) (limited to 'doc') diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 09db5a0e0..cfc840ae9 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -904,84 +904,14 @@ APT::Compressor::rev { These options are passed to &dpkg-buildpackage; when compiling packages; the default is to disable signing and produce all binaries. - - dpkg trigger usage (and related options) - APT can call &dpkg; in such a way as to let it make aggressive use of triggers over - multiple calls of &dpkg;. Without further options &dpkg; will use triggers once each time it runs. - Activating these options can therefore decrease the time needed to perform the - install or upgrade. Note that it is intended to activate these options per default in the - future, but as it drastically changes the way APT calls &dpkg; it needs a lot more testing. - These options are therefore currently experimental and should not be used in - production environments. It also breaks progress reporting such that all front-ends will - currently stay around half (or more) of the time in the 100% state while it actually configures - all packages. - Note that it is not guaranteed that APT will support these options or that these options will - not cause (big) trouble in the future. If you have understand the current risks and problems with - these options, but are brave enough to help testing them, create a new configuration file and test a - combination of options. Please report any bugs, problems and improvements you encounter and make sure - to note which options you have used in your reports. Asking &dpkg; for help could also be useful for - debugging proposes, see e.g. dpkg --audit. A defensive option combination would be -DPkg::NoTriggers "true"; -PackageManager::Configure "smart"; -DPkg::ConfigurePending "true"; -DPkg::TriggersPending "true"; - - - - Add the no triggers flag to all &dpkg; calls (except the ConfigurePending call). - See &dpkg; if you are interested in what this actually means. In short: &dpkg; will not run the - triggers when this flag is present unless it is explicitly called to do so in an extra call. - Note that this option exists (undocumented) also in older APT versions with a slightly different - meaning: Previously these option only append --no-triggers to the configure calls to &dpkg; - - now APT will also add this flag to the unpack and remove calls. - - - Valid values are "all", - "smart" and "no". - The default value is "all", which causes APT to - configure all packages. The "smart" way is to - configure only packages which need to be configured before another - package can be unpacked (Pre-Depends), and let the rest be configured - by &dpkg; with a call generated by the ConfigurePending option (see - below). On the other hand, "no" will not configure - anything, and totally relies on &dpkg; for configuration (which at the - moment will fail if a Pre-Depends is encountered). Setting this option - to any value other than all will implicitly also - activate the next option by default, as otherwise the system could end - in an unconfigured and potentially unbootable state. - - - If this option is set APT will call dpkg --configure --pending - to let &dpkg; handle all required configurations and triggers. This option is activated automatically - per default if the previous option is not set to all, but deactivating it could be useful - if you want to run APT multiple times in a row - e.g. in an installer. In these sceneries you could - deactivate this option in all but the last run. - - - Useful for the smart configuration as a package which has pending - triggers is not considered as installed, and &dpkg; treats them as unpacked - currently which is a showstopper for Pre-Dependencies (see debbugs #526774). Note that this will - process all triggers, not only the triggers needed to configure this package. - - - Essential packages (and their dependencies) should be configured immediately - after unpacking. It is a good idea to do this quite early in the upgrade process as these - configure calls also currently require DPkg::TriggersPending which - will run quite a few triggers (which may not be needed). Essentials get per default a high score - but the immediate flag is relatively low (a package which has a Pre-Depends is rated higher). - These option and the others in the same group can be used to change the scoring. The following - example shows the settings with their default values. - OrderList::Score { - Delete 500; - Essential 200; - Immediate 10; - PreDepends 50; -}; - - - - + + If this option is set APT will call dpkg --configure --pending + to let &dpkg; handle all required configurations and triggers. This option is activated by default, + but deactivating it could be useful if you want to run APT multiple times in a row - e.g. in an installer. + In this scenario you could deactivate this option in all but the last run. + + -- cgit v1.2.3