home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / python-apt / examples / depcache.py < prev    next >
Encoding:
Python Source  |  2006-03-02  |  3.3 KB  |  110 lines

  1. #!/usr/bin/python
  2. # example how to deal with the depcache
  3.  
  4. import apt
  5. import apt_pkg
  6. import sys
  7. import copy
  8. from progress import TextProgress
  9.  
  10.  
  11. # init
  12. apt_pkg.init()
  13.  
  14. progress = TextProgress()
  15. cache = apt_pkg.GetCache(progress)
  16. print "Available packages: %s " % cache.PackageCount
  17.  
  18. iter = cache["base-config"]
  19. print "example package iter: %s" % iter
  20.  
  21. # get depcache
  22. print "\n\n depcache"
  23. depcache = apt_pkg.GetDepCache(cache)
  24. depcache.ReadPinFile()
  25. # init is needed after the creation/pin file reading
  26. depcache.Init(progress)
  27. print "got a depcache: %s " % depcache
  28. print "Marked for install: %s " % depcache.InstCount
  29.  
  30. print "\n\n Reinit"
  31. depcache.Init(progress)
  32.  
  33. #sys.exit()
  34.  
  35.  
  36. # get a canidate version
  37. ver= depcache.GetCandidateVer(iter)
  38. print "Candidate version: %s " % ver
  39.  
  40. print "\n\nQuerry interface"
  41. print "%s.IsUpgradable(): %s" % (iter.Name, depcache.IsUpgradable(iter))
  42.  
  43. print "\nMarking interface"
  44. print "Marking '%s' for install" % iter.Name
  45. depcache.MarkInstall(iter)
  46. print "Install count: %s " % depcache.InstCount
  47. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  48. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  49. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  50.  
  51. print "Marking %s for delete" % iter.Name
  52. depcache.MarkDelete(iter)
  53. print "DelCount: %s " % depcache.DelCount
  54. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  55.  
  56.  
  57. iter = cache["3dchess"]
  58. print "\nMarking '%s' for install" % iter.Name
  59. depcache.MarkInstall(iter)
  60. print "Install count: %s " % depcache.InstCount
  61. print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
  62. print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
  63. print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
  64.  
  65. print "Marking %s for keep" % iter.Name
  66. depcache.MarkKeep(iter)
  67. print "Install: %s " % depcache.InstCount
  68.  
  69. iter = cache["synaptic"]
  70. print "\nMarking '%s' for install" % iter.Name
  71. depcache.MarkInstall(iter)
  72. print "Install: %s " % depcache.InstCount
  73. print "Broken count: %s" % depcache.BrokenCount
  74. print "FixBroken() "
  75. depcache.FixBroken()
  76. print "Broken count: %s" % depcache.BrokenCount
  77.  
  78. print "\nPerforming Upgrade"
  79. depcache.Upgrade()
  80. print "Keep: %s " % depcache.KeepCount
  81. print "Install: %s " % depcache.InstCount
  82. print "Delete: %s " % depcache.DelCount
  83. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  84. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  85.  
  86. for pkg in cache.Packages:
  87.     if pkg.CurrentVer != None and not depcache.MarkedInstall(pkg) and depcache.IsUpgradable(pkg):
  88.         print "Upgrade didn't upgrade (kept): %s" % pkg.Name
  89.  
  90.  
  91. print "\nPerforming DistUpgrade"
  92. depcache.Upgrade(True)
  93. print "Keep: %s " % depcache.KeepCount
  94. print "Install: %s " % depcache.InstCount
  95. print "Delete: %s " % depcache.DelCount
  96. print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
  97. print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
  98.  
  99. # overview about what would happen
  100. for pkg in cache.Packages:
  101.     if depcache.MarkedInstall(pkg):
  102.         if pkg.CurrentVer != None:
  103.             print "Marked upgrade: %s " % pkg.Name
  104.         else:
  105.             print "Marked install: %s" % pkg.Name
  106.     elif depcache.MarkedDelete(pkg):
  107.         print "Marked delete: %s" % pkg.Name
  108.     elif depcache.MarkedKeep(pkg):
  109.         print "Marked keep: %s" % pkg.Name
  110.