Ver código fonte

* cmdline/apt-get.cc:
- changed the behaviour of --no-remove and --auto-remove, if --no-remove
is given, then that will turn off --auto-remove implicitely

Michael Vogt 20 anos atrás
pai
commit
3d0de656b6
1 arquivos alterados com 11 adições e 7 exclusões
  1. 11 7
      cmdline/apt-get.cc

+ 11 - 7
cmdline/apt-get.cc

@@ -1393,15 +1393,20 @@ bool DoUpdate(CommandLine &CmdL)
 bool DoAutomaticRemove(CacheFile &Cache)
 {
    bool Debug = _config->FindI("Debug::pkgAutoRemove",false);
+   bool doAutoRemove = _config->FindB("APT::Get::AutomaticRemove");
    pkgDepCache::ActionGroup group(*Cache);
+   
 
    if(Debug)
       std::cout << "DoAutomaticRemove()" << std::endl;
 
-   if (_config->FindB("APT::Get::AutomaticRemove") &&
-       _config->FindB("APT::Get::Remove",true) == false)
-      return _error->Error(_("We are not supposed to delete stuff, can't "
-			     "start AutoRemover"));
+   if (_config->FindB("APT::Get::Remove",true) == false &&
+       doAutoRemove == true)
+   {
+      c1out << _("We are not supposed to delete stuff, can't start "
+		 "AutoRemover") << std::endl;
+      doAutoRemove = false;
+   }
 
    string autoremovelist, autoremoveversions;
    // look over the cache to see what can be removed
@@ -1415,7 +1420,7 @@ bool DoAutomaticRemove(CacheFile &Cache)
 	   
 	 autoremovelist += string(Pkg.Name()) + " ";
 	 autoremoveversions += string(Cache[Pkg].CandVersion) + " ";
-	 if (_config->FindB("APT::Get::AutomaticRemove")) 
+	 if (doAutoRemove)
 	 {
 	    if(Pkg.CurrentVer() != 0 && 
 	       Pkg->CurrentState != pkgCache::State::ConfigFiles)
@@ -1426,8 +1431,7 @@ bool DoAutomaticRemove(CacheFile &Cache)
       }
    }
    ShowList(c1out, _("The following packages where automatically installed and are no longer required:"), autoremovelist, autoremoveversions);
-   if (!_config->FindB("APT::Get::AutomaticRemove") && 
-       autoremovelist.size() > 0)
+   if (!doAutoRemove && autoremovelist.size() > 0)
       c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl;
 
    // Now see if we destroyed anything