diff options
Diffstat (limited to 'cmdline/apt-get.cc')
-rw-r--r-- | cmdline/apt-get.cc | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 64882e3e8..b33a324ea 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1144,10 +1144,7 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, } else ExpectedInst++; - - // Install it with autoinstalling enabled. - if (State.InstBroken() == true && BrokenFix == false) - Cache.MarkInstall(Pkg,true); + return true; } /*}}}*/ @@ -1538,6 +1535,20 @@ bool DoInstall(CommandLine &CmdL) } } + for (unsigned J = 0; J < Cache->Head().PackageCount; J++) + { + pkgCache::PkgIterator I(Cache,Cache.List[J]); + if ((*Cache)[I].Install() == false) + continue; + + pkgDepCache::StateCache &State = Cache[I]; + // Install it with autoinstalling enabled (if we not respect the minial + // required deps or the policy) + if (State.InstBroken() == true && BrokenFix == false) + Cache->MarkInstall(I,true); + } + + /* If we are in the Broken fixing mode we do not attempt to fix the problems. This is if the user invoked install without -f and gave packages */ |