diff options
author | Michael Vogt <mvo@ubuntu.com> | 2016-01-02 22:08:30 +0100 |
---|---|---|
committer | Michael Vogt <mvo@ubuntu.com> | 2016-01-02 22:18:13 +0100 |
commit | ee02b5b3949372a178d37cadaa08db0bfd5b991f (patch) | |
tree | 873cb79c1a6e86b8dfffe5f65604665c70adb17c /apt-private | |
parent | bd8274311db48fdcc78456c17c2d59497b96cc2f (diff) | |
download | apt-ee02b5b3949372a178d37cadaa08db0bfd5b991f.tar.gz |
Add new APT::Keep-Downloaded-Packages option
This option controls if downloaded packages should be kept after
a successful install or if they should be deleted. The default
for "apt-get" is that they are kept (just like before).
However the default for "apt" is that they get deleted.
Closes: #160743
Diffstat (limited to 'apt-private')
-rw-r--r-- | apt-private/private-cmndline.cc | 1 | ||||
-rw-r--r-- | apt-private/private-install.cc | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc index 6cffbcb48..9234aa278 100644 --- a/apt-private/private-cmndline.cc +++ b/apt-private/private-cmndline.cc @@ -435,6 +435,7 @@ static void BinarySpecificConfiguration(char const * const Binary) /*{{{*/ _config->CndSet("Binary::apt::APT::Cmd::Show-Update-Stats", true); _config->CndSet("Binary::apt::DPkg::Progress-Fancy", true); _config->CndSet("Binary::apt::Acquire::AllowInsecureRepositories", false); + _config->CndSet("Binary::apt::APT::Keep-Downloaded-Packages", false); } _config->Set("Binary", binary); diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index 74a2424c5..73aebaf2f 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -346,6 +346,18 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask, bool Safety) c0out << _("Note: This is done automatically and on purpose by dpkg.") << std::endl; } + // cleanup downloaded debs + if (_config->FindB("APT::Keep-Downloaded-Packages", true) == false) + { + std::string const archivedir = _config->FindDir("Dir::Cache::archives"); + for (auto I = Fetcher.ItemsBegin(); I != Fetcher.ItemsEnd(); ++I) + { + if (flNotFile((*I)->DestFile) != archivedir || (*I)->Local) + continue; + RemoveFile("Keep-Downloaded-Packages=false", (*I)->DestFile); + } + } + return true; } /*}}}*/ |