Viewing file: acquire.py (2.23 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
import apt import apt_pkg import os import sys import tempfile
def get_file(fetcher, uri, destFile): cwd = os.getcwd() # create a temp dir dir = tempfile.mkdtemp() os.chdir(dir) # get the file af = apt_pkg.GetPkgAcqFile(fetcher, uri=uri, descr="sample descr") res = fetcher.Run() if res != fetcher.ResultContinue: os.rmdir(dir) os.chdir(cwd) return False filename = os.path.basename(uri) os.rename(dir+"/"+filename,destFile) # cleanup os.rmdir(dir) os.chdir(cwd) return True
apt_pkg.init()
#apt_pkg.Config.Set("Debug::pkgDPkgPM","1"); #apt_pkg.Config.Set("Debug::pkgPackageManager","1"); #apt_pkg.Config.Set("Debug::pkgDPkgProgressReporting","1");
cache = apt_pkg.GetCache() depcache = apt_pkg.GetDepCache(cache)
recs = apt_pkg.GetPkgRecords(cache) list = apt_pkg.GetPkgSourceList() list.ReadMainList()
# show the amount fetch needed for a dist-upgrade depcache.Upgrade(True) progress = apt.progress.TextFetchProgress() fetcher = apt_pkg.GetAcquire(progress) pm = apt_pkg.GetPackageManager(depcache) pm.GetArchives(fetcher,list,recs) print "%s (%s)" % (apt_pkg.SizeToStr(fetcher.FetchNeeded), fetcher.FetchNeeded) actiongroup = apt_pkg.GetPkgActionGroup(depcache) for pkg in cache.Packages: depcache.MarkKeep(pkg)
try: os.mkdir("/tmp/pyapt-test") os.mkdir("/tmp/pyapt-test/partial") except OSError: pass apt_pkg.Config.Set("Dir::Cache::archives","/tmp/pyapt-test")
pkg = cache["3ddesktop"] depcache.MarkInstall(pkg)
progress = apt.progress.TextFetchProgress() fetcher = apt_pkg.GetAcquire(progress) #fetcher = apt_pkg.GetAcquire() pm = apt_pkg.GetPackageManager(depcache)
print pm print fetcher
get_file(fetcher, "ftp://ftp.debian.org/debian/dists/README", "/tmp/lala")
pm.GetArchives(fetcher,list,recs)
for item in fetcher.Items: print item if item.Status == item.StatError: print "Some error ocured: '%s'" % item.ErrorText if item.Complete == False: print "No error, still nothing downloaded (%s)" % item.ErrorText print
res = fetcher.Run() print "fetcher.Run() returned: %s" % res
print "now runing pm.DoInstall()" res = pm.DoInstall(1) print "pm.DoInstall() returned: %s"% res
|