|
|
|
@ -706,13 +706,34 @@ class Update:
|
|
|
|
|
Выполнить очистку системы от лишних пакетов
|
|
|
|
|
"""
|
|
|
|
|
deo = self.clVars.Get('cl_emerge_default_opts')
|
|
|
|
|
with EmergeParser(EmergeCommand(["--depclean"],
|
|
|
|
|
emerge_default_opts=deo)) as emerge:
|
|
|
|
|
emerge = None
|
|
|
|
|
try:
|
|
|
|
|
emerge = EmergeParser(EmergeCommand(["--depclean"],
|
|
|
|
|
emerge_default_opts=deo))
|
|
|
|
|
try:
|
|
|
|
|
emerge.question.action = lambda x: False
|
|
|
|
|
emerge.run()
|
|
|
|
|
if not emerge.uninstall_packages.list:
|
|
|
|
|
return True
|
|
|
|
|
kernel_pkg = self.clVars.Get('cl_update_kernel_pkg')
|
|
|
|
|
if any(("%s-%s" % (x['CATEGORY/PN'], x['PVR'])) == kernel_pkg
|
|
|
|
|
for x in emerge.uninstall_packages.list):
|
|
|
|
|
pkglist = [
|
|
|
|
|
"=%s-%s" % (x['CATEGORY/PN'], x['PVR']) for x in
|
|
|
|
|
emerge.uninstall_packages.list
|
|
|
|
|
if ("%s-%s" % (x['CATEGORY/PN'],
|
|
|
|
|
x['PVR'])) != kernel_pkg]
|
|
|
|
|
emerge.command.send('n\n')
|
|
|
|
|
emerge.close()
|
|
|
|
|
emerge = None
|
|
|
|
|
if not pkglist:
|
|
|
|
|
return True
|
|
|
|
|
emerge = EmergeParser(
|
|
|
|
|
EmergeCommand(pkglist,
|
|
|
|
|
extra_params=["--unmerge", '--ask=y'],
|
|
|
|
|
emerge_default_opts=deo))
|
|
|
|
|
emerge.question.action = lambda x: False
|
|
|
|
|
emerge.run()
|
|
|
|
|
self._display_remove_list(emerge)
|
|
|
|
|
except EmergeError:
|
|
|
|
|
self.printPre(self._emerge_translate(emerge.prepare_error))
|
|
|
|
@ -721,6 +742,9 @@ class Update:
|
|
|
|
|
_("Would you like to unmerge these packages?")) != 'yes'):
|
|
|
|
|
return False
|
|
|
|
|
self._startEmerging(emerge)
|
|
|
|
|
finally:
|
|
|
|
|
if emerge:
|
|
|
|
|
emerge.close()
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def update_task(self, task_name):
|
|
|
|
|