Summary: | Не устанавливаются/удаляются пакеты после первой перезагрузки | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Белая Алёна <belayaav> |
Component: | gpupdate | Assignee: | Valery Sinelnikov <greh> |
Status: | NEW --- | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P5 | CC: | glinkinvd, greh, nir, sin |
Version: | unstable | ||
Hardware: | x86_64 | ||
OS: | Linux |
Description
Белая Алёна
2024-11-25 15:54:31 MSK
Добавил pkcon_runner вывод dict_packages, self.install_packages_setting и self.remove_packages_setting, после чего посмотрел, что происходит вообще. 1. Пытаюсь добавить установку пакета telnet. Сначала убедился, что /etc/dconf/db/policy.d/policy.ini не содержит записей о данном пакете. После запуска gpupdate также посмотрел /etc/dconf/db/policy.d/policy.ini [root@gnome gpoa]# grep -r -i telnet /etc/dconf/db/policy.d/ [root@gnome gpoa]# gpupdate {'Sync': 1} [] [] Apply group policies for computer. [root@gnome gpoa]# grep -r -i telnet /etc/dconf/db/policy.d/ /etc/dconf/db/policy.d/policy.ini:Install = "['telnet']" [root@gnome gpoa]# gpupdate {'Install': "['telnet']", 'Sync': 1} ['telnet'] [] Apply group policies for computer. [root@gnome gpoa]# grep -r -i telnet /etc/dconf/db/policy.d/ /etc/dconf/db/policy.d/policy.ini:Install = "['telnet']" /etc/dconf/db/policy.d/policy.ini:Install = "{'policy_name': 'Новый объект групповой политики', 'type': 1, 'reloaded_with_policy_key': None, 'is_list': True, 'mod_previous_value': '[″telnet″]'}" /etc/dconf/db/policy.d/policy.ini:Install = "['telnet']" В итоге, pkcon_runner запустился раньше, чем обновился /etc/dconf/db/policy.d/policy.ini - пакет не установился, но ключи мы получили. При повторном запуске пакет, соответственно, ставится. 2. Отключил политику установки пакета, настроил политику удаления пакета telnet. [root@gnome gpoa]# gpupdate {'Sync': 1, 'Install': "['telnet']"} ['telnet'] [] Apply group policies for computer. [root@gnome gpoa]# grep -r -i telnet /etc/dconf/db/policy.d/ /etc/dconf/db/policy.d/policy.ini:Remove = "['telnet']" /etc/dconf/db/policy.d/policy.ini:Install = "['telnet']" [root@gnome gpoa]# gpupdate {'Sync': 1, 'Remove': "['telnet']"} [] ['telnet'] Apply group policies for computer. [root@gnome gpoa]# grep -r -i telnet /etc/dconf/db/policy.d/ /etc/dconf/db/policy.d/policy.ini:Remove = "['telnet']" /etc/dconf/db/policy.d/policy.ini:Remove = "{'policy_name': 'Новый объект групповой политики', 'type': 1, 'reloaded_with_policy_key': None, 'is_list': True, 'mod_previous_value': '[″telnet″]'}" /etc/dconf/db/policy.d/policy.ini:Remove = "['telnet']" Опять же, после первого запуска pkcon_runner считывает предыдущее состояние /etc/dconf/db/policy.d/policy.ini Ещё смутило то, что после первого выполнения gpupdate, в /etc/dconf/db/policy.d/policy.ini получилась какая-то каша: /etc/dconf/db/policy.d/policy.ini:Remove = "['telnet']" /etc/dconf/db/policy.d/policy.ini:Install = "['telnet']" Прошу рассмотреть предложенное мной исправление: https://github.com/altlinux/gpupdate/pull/210 В gpoa мы сначала вызывали self.start_frontend(), тем самым запуская applier, а только потом сохраняли новый dconf с помощью save_dconf(self.username, self.is_machine, nodomain). Необходимо было поменять порядок вызова метода и функции. Благодарю за PR! Я рассмотрю ваше исправление в рамках подготовки следующего релиза. |