Я использовал метод, указанный здесь для помещения "хранения" над конкретным пакетом ("jenkins"), чтобы помешать системе обновлять его:
# dpkg --get-selections | grep jenkins
jenkins hold
Есть ли какой-либо способ, которым я добираюсь, обнаруживают этот особый статус с помощью API Python для Кв.? Хотя я развертываю в Package
, Record
, и Version
объекты, я не вижу упоминания о "сохраненном" пакете.
Я действительно не желающее порождение от a dpkg
- процесс, чтобы сделать это... Какая-либо надежда?
Хорошо, я нашел его - путем взгляда в /usr/bin/unattended-upgrade
. apt.Package
- объект, на самом деле, имеет участника, названного _pkg
, который имеет тип apt_pkg.Package
. Тот имеет selected_state
участник - числовая константа (перечисление). Это, что я использую в своем коде теперь:
import apt
import apt_pkg
...
if package._pkg.selected_state == apt_pkg.SELSTATE_HOLD:
pkg['hold'] = True
Боюсь, что эта функциональность, похоже, не раскрывается в Python API. Они имеют marked_delete
, marked_downgrade
, marked_install
и т. Д., Но не marked_held
. Однако он существует в C ++ API . Есть ли шанс, что вы можете использовать это?