def __init__(self, system_bus, mainloop): # Init dbus service. dbus.service.Object.__init__(self, system_bus, DSC_SERVICE_PATH) # Init. self.mainloop = mainloop self.pkg_cache = AptCache() self.exit_flag = False self.simulate = False self.all_upgrade_pkg_names = [] self.download_dir = "/var/cache/apt/archives" self.is_upgrading = False self.in_update_list = False self.apt_action_pool = AptActionPool(self.pkg_cache) self.apt_action_pool.start() global_event.register_event('parse-download-error', self.send_parse_download_error) global_event.register_event("action-start", self.action_start) global_event.register_event("action-update", self.action_update) global_event.register_event("action-finish", self.action_finish) global_event.register_event("action-failed", self.action_failed) global_event.register_event("download-start", self.download_start) global_event.register_event("download-update", self.download_update) global_event.register_event("download-finish", self.download_finish) global_event.register_event("download-stop", self.download_stop) global_event.register_event("download-error", self.download_failed) global_event.register_event("update-list-start", self.update_list_start) global_event.register_event("update-list-finish", self.update_list_finish) global_event.register_event("update-list-failed", self.update_list_failed) global_event.register_event("update-list-update", self.update_list_update) self.packages_status = {} self.exit_manager = ExitManager(self.mainloop, self.is_update_list_running, self.is_download_action_running, self.is_apt_action_running, self.have_exit_request) self.exit_manager.start() self.set_download_dir('/var/cache/apt/archives') self.download_manager = DownloadManager(global_event, verbose=True)
if cache.is_pkg_upgradable(pkg_name): pkg.mark_upgrade() elif not cache.is_pkg_installed(pkg_name): pkg.mark_install() # Get package information. pkgs = sorted(cache.get_changes(), key=lambda pkg: pkg.name) cache._depcache.init() file_paths.append( os.path.join(cache_archive_dir, get_filename(pkg.candidate))) for pkg in pkgs: file_paths.append( os.path.join(cache_archive_dir, get_filename(pkg.candidate))) return file_paths if __name__ == "__main__": from apt_cache import AptCache cache = AptCache() # deb_package = debfile.DebPackage("/test/Download/geany_1.22+dfsg-2_amd64.deb", cache) # print deb_package.VERSION_NONE, deb_package.VERSION_OUTDATED, deb_package.VERSION_SAME, deb_package.VERSION_NEWER # print deb_package.compare_to_version_in_cache() # print deb_package.check() # print deb_package.check_breaks_existing_packages() # print deb_package.check_conflicts() for path in get_pkg_dependence_file_path(cache, "kingsoft-office"): print path