Esempio n. 1
0
    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)
Esempio n. 2
0
    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