From d325a28d7c05985ccc3974844dfce6d38723190d Mon Sep 17 00:00:00 2001 From: wangsong Date: Mon, 17 Oct 2022 11:26:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=89=E8=A3=85=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E5=8D=B4=E6=8A=A5=E9=94=99=E6=88=90=E5=8A=9F=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/SystemUpdater/backend/__init__.py | 13 +++---------- debian/changelog | 9 +++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/backend/SystemUpdater/backend/__init__.py b/backend/SystemUpdater/backend/__init__.py index 58d15e0..06b1de0 100644 --- a/backend/SystemUpdater/backend/__init__.py +++ b/backend/SystemUpdater/backend/__init__.py @@ -234,8 +234,6 @@ class InstallBackend(): #计算依赖解决方案 elif self.action == self.ACTION_CHECK_RESOLVER: - #被删除的包列表 - delete_pkgs = [] #被删除包的描述 raw_description = [] @@ -549,7 +547,7 @@ class InstallBackend(): if cache.get_changes(): cache.clear() resolver = apt.cache.ProblemResolver(cache) - #调整候选版本强制更改版本 + for pkg_name, pkg_ver, pkg_rel in [self._split_package_id(pkg) for pkg in adjust_pkgs]: try: @@ -559,14 +557,11 @@ class InstallBackend(): logging.warning("The version %s of %s isn't available",pkg_ver, pkg_name) continue - #标记计算所有需要安装的 for pkg in pkgs_upgrade + pkgs_install: pkg_cache = cache[pkg] - #将第二个参数调整为False 当为True时就不能检查缺少依赖的包 默认自动移除掉了 pkg_cache.mark_install(False, True, True) - #将可自动升级的标记为自动安装 if pkg_cache.is_upgradable == True: auto = pkg_cache.is_auto_installed pkg_cache.mark_auto(auto) @@ -591,7 +586,6 @@ class InstallBackend(): desc= terminal_msg) def _emulate_calcul_delete(self,total_pkg): - # 多线程的方式来计算删除的软件包 logging.info("[DELETE_DETAILS] Start calculating delete dependencies...") delete_pkgs = [] last_delete_count = 0 @@ -688,7 +682,7 @@ class InstallBackend(): #这个 为True的很低 大多数为False 只有当系统中apt 出现问题时 才会复现这种问题 if success == False and false_num == 0 and self.now_upgrade.upgrade_content != []: logging.warning("Special Case switch success status from False to True...") - success = True + # success = True if success: #当组列表为空时 表示现在的单独进行安装某些包或卸载,不发信号到控制面板 @@ -949,11 +943,10 @@ class InstallBackend(): #组的计算是否升级成功的方式 将组按照单包来计算的 if _now_upgrade.upgrade_groups != []: pkgs_install,pkgs_upgrade = self._make_pkgs_list(self.cache,self.upgrade_data.groups_pkgs,_now_upgrade.upgrade_groups,[]) - # group_error_log = '' install_error_pkgs = [] total_pkg = pkgs_install + pkgs_upgrade - for pkg in pkgs_install + pkgs_upgrade: + for pkg in total_pkg[::-1]: pkg_obj = fresh_cache[pkg] if pkg in adjust_pkgs: if pkg_obj.is_installed == True and pkg_obj.is_now_broken == False and pkg_obj.installed.source_version + pkg_obj.name in self.upgrade_data.adjust_pkgs: diff --git a/debian/changelog b/debian/changelog index 74c4261..3018234 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +kylin-system-updater (2.0.5.13) v101; urgency=medium + + * BUG: #141330 【在线更新】0521系统在线升级到2203-update1时提示依赖冲突 + * 需求号: 无 + * 其他改动说明: 无 + * 其他改动影响域:系统更新 + + -- luoxueyi Mon, 17 Oct 2022 11:25:38 +0800 + kylin-system-updater (2.0.5.12) v101; urgency=medium * BUG: #141197 【在线更新】更新升级安装软件包过程中点击电源后还可以正常关机重启、