// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-get.cc,v 1.85 1999/10/27 04:38:28 jgg Exp $
+// $Id: apt-get.cc,v 1.91 1999/11/28 01:03:28 jgg Exp $
/* ######################################################################
apt-get - Cover for dpkg
Cache->BadCount() == 0)
return true;
+ // No remove flag
+ if (Cache->DelCount() != 0 && _config->FindB("APT::Get::No-Remove",false) == true)
+ return _error->Error("Packages need to be removed but No Remove was specified.");
+
// Run the simulator ..
if (_config->FindB("APT::Get::Simulate") == true)
{
c1out << SizeToStr(DebBytes) << 'B';
c1out << " of archives. After unpacking ";
+
+ // Size delta
+ if (Cache->UsrSize() >= 0)
+ c1out << SizeToStr(Cache->UsrSize()) << "B will be used." << endl;
+ else
+ c1out << SizeToStr(-1*Cache->UsrSize()) << "B will be freed." << endl;
+
+ if (_error->PendingError() == true)
+ return false;
// Check for enough free space
struct statfs Buf;
if (unsigned(Buf.f_bfree) < (FetchBytes - FetchPBytes)/Buf.f_bsize)
return _error->Error("Sorry, you don't have enough free space in %s to hold all the .debs.",
OutputDir.c_str());
-
- // Size delta
- if (Cache->UsrSize() >= 0)
- c1out << SizeToStr(Cache->UsrSize()) << "B will be used." << endl;
- else
- c1out << SizeToStr(-1*Cache->UsrSize()) << "B will be freed." << endl;
-
- if (_error->PendingError() == true)
- return false;
// Fail safe check
if (_config->FindI("quiet",0) >= 2 ||
if (Essential == true && Saftey == true)
{
+ if (_config->FindB("APT::Get::Trivial-Only",false) == true)
+ return _error->Error("Trivial Only specified but this is not a trivial operation.");
+
c2out << "You are about to do something potentially harmful" << endl;
c2out << "To continue type in the phrase 'Yes, I understand this may be bad'" << endl;
c2out << " ?] " << flush;
}
}
else
- {
+ {
// Prompt to continue
if (Ask == true || Fail == true)
{
+ if (_config->FindB("APT::Get::Trivial-Only",false) == true)
+ return _error->Error("Trivial Only specified but this is not a trivial operation.");
+
if (_config->FindI("quiet",0) < 2 &&
_config->FindB("APT::Get::Assume-Yes",false) == false)
{
Pkg.ProvidesList()->NextProvides == 0)
{
pkgCache::PkgIterator Tmp = Pkg.ProvidesList().OwnerPkg();
- c1out << "Note, installing " << Tmp.Name() << " instead of " << Pkg.Name() << endl;
+ c1out << "Note, selecting " << Tmp.Name() << " instead of " << Pkg.Name() << endl;
Pkg = Tmp;
}
// Check if there is something at all to install
pkgDepCache::StateCache &State = Cache[Pkg];
- if (State.CandidateVer == 0)
+ if (Remove == true && Pkg->CurrentVer == 0)
+ {
+ if (AllowFail == false)
+ return false;
+ return _error->Error("Package %s is not installed",Pkg.Name());
+ }
+
+ if (State.CandidateVer == 0 && Remove == false)
{
if (AllowFail == false)
return false;
{
c1out << "Package " << Pkg.Name() << " has no available version, but exists in the database." << endl;
c1out << "This typically means that the package was mentioned in a dependency and " << endl;
- c1out << "never uploaded, or that it is an obsolete package." << endl;
+ c1out << "never uploaded, has been obsoleted or is not available with the contents " << endl;
+ c1out << "of sources.list" << endl;
string List;
pkgCache::DepIterator Dep = Pkg.RevDependsList();
}
Fix.Clear(Pkg);
- Fix.Protect(Pkg);
+ Fix.Protect(Pkg);
if (Remove == true)
{
Fix.Remove(Pkg);
/* */
bool DoClean(CommandLine &CmdL)
{
+ if (_config->FindB("APT::Get::Simulate") == true)
+ {
+ cout << "Del " << _config->FindDir("Dir::Cache::archives") << "* " <<
+ _config->FindDir("Dir::Cache::archives") << "partial/*" << endl;
+ return true;
+ }
+
// Lock the archive directory
FileFd Lock;
if (_config->FindB("Debug::NoLocking",false) == false)
{'d',"download-only","APT::Get::Download-Only",0},
{'b',"compile","APT::Get::Compile",0},
{'b',"build","APT::Get::Compile",0},
- {'s',"simulate","APT::Get::Simulate",0},
- {'s',"just-print","APT::Get::Simulate",0},
- {'s',"recon","APT::Get::Simulate",0},
- {'s',"no-act","APT::Get::Simulate",0},
- {'y',"yes","APT::Get::Assume-Yes",0},
+ {'s',"simulate","APT::Get::Simulate",0},
+ {'s',"just-print","APT::Get::Simulate",0},
+ {'s',"recon","APT::Get::Simulate",0},
+ {'s',"no-act","APT::Get::Simulate",0},
+ {'y',"yes","APT::Get::Assume-Yes",0},
{'y',"assume-yes","APT::Get::Assume-Yes",0},
{'f',"fix-broken","APT::Get::Fix-Broken",0},
{'u',"show-upgraded","APT::Get::Show-Upgraded",0},
{0,"purge","APT::Get::Purge",0},
{0,"list-cleanup","APT::Get::List-Cleanup",0},
{0,"reinstall","APT::Get::ReInstall",0},
+ {0,"trivial-only","APT::Get::Trivial-Only",0},
+ {0,"no-remove","APT::Get::No-Remove",0},
{'c',"config-file",0,CommandLine::ConfigFile},
{'o',"option",0,CommandLine::ArbItem},
{0,0,0,0}};