Какой эквивалент команды «mintupdate» для Linux Mint?

Какой эквивалент команды «mintupdate» для Linux Mint?

Linux Mint имеет удобный графический менеджер обновлений с возможностью выбора уровней обновлений. По умолчанию установлены уровни с 1 по 3 из возможных 5. Однако я часто выполняю административные задачи для ряда настольных систем Linux Mint с помощью SSH, а не посещая физические машины. Как мне добиться той же функциональности из командной строки?

Я уже знаю о командах apt-get updateи apt-get upgrade, но насколько я знаю, эти команды все еще работаютнетиметь любую функциональность, эквивалентную пятиуровневому поведению Менеджера обновлений ( /usr/lib/linuxmint/mintUpdate/mintUpdate.py).

Обновление: Когда я изначально задавал этот вопрос, я искал решение для Linux Mint 17. Сейчас я использую 18.3 на некоторых из наших систем и смог дать ответ для них.

решение1

Альтернативы не было, так как mintUpdate.py был только GUI (gtk), пока я не решил написать его. Я описал его в своем блоге -Интерфейс командной строки для обновления Linux MintТам же вы найдете ссылку на gitHub. Я также опубликую несколько скриншотов.

решение2

На Mint 19 есть mintupdate-cliинструмент, который имеет те же функции, что и версия с графическим интерфейсом mintupdate. Получите использование с его -hопцией.

Однако я не нашел его manpage (с man mintupdate-cli). Поэтому я не могу найти его исходные коды и авторов из самого приложения. Хотя после некоторых поисков, похоже, что это частьmintupdateпроект:

https://github.com/linuxmint/mintupdate/blob/master/usr/lib/linuxmint/mintUpdate/mintupdate-cli.py

решение3

Этот ответ применим к Linux Mint 18.2 и более поздним версиям, хотя я тестировал его только для 18.3.

В дистрибутив теперь включен инструмент командной строки под названием mintupdate-tool. В примечаниях к выпуску 18.2 он рекламируется как «Этот инструмент поддерживает все функции, доступные в пользовательском интерфейсе, включая выбор уровня, обновления безопасности, обновления ядра и черный список». Под «пользовательским интерфейсом» подразумевается менеджер обновлений, и это утверждение далеко от истины, но это большой шаг вперед.

manСтраницы для этого инструмента нет , поэтому:

$ mintupdate-tool --help
usage: mintupdate-tool [-h] [-k | -nk] [-s] [-r] [-d] [-y]
                       [--install-recommends] [-l LEVELS]
                       command

positional arguments:
  command               command to run (possible commands are: list, upgrade)

optional arguments:
  -h, --help            show this help message and exit
  -k, --kernel          ignore settings and include all kernel updates
  -nk, --no-kernel      ignore settings and exclude all kernel updates
  -s, --security        ignore settings and include all security updates
  -r, --refresh-cache   refresh the APT cache
  -d, --dry-run         simulation mode, don't upgrade anything
  -y, --yes             automatically answer yes to all questions
  --install-recommends  install recommended packages (use with caution)
  -l LEVELS, --levels LEVELS
                        ignore settings and restrict to this list of levels

Настройки из Update Manager определяют поведение по умолчанию. Эти настройки находятся в хранилище данных активного пользователя dconf(схемаcom.linuxmint.обновления), поэтому добавление к команде plain sudoне меняет этого. Это важно, поскольку обновления невозможны без привилегий root.

Предупреждение: Невозможно исключить обновления безопасности, если их включение включено в настройках диспетчера обновлений.

Синтаксический анализ опции «--levels» немного небрежен и неочевиден. LEVELS — это строка, в которой ищутся цифры от 1 до 5. Это не пороговое значение или диапазон. Он также не проверяет наличие недопустимых символов, поэтому «14», «1-4», «1,4», «4..1» и «two4u14me» означают только уровни 1 и 4.

Чтобы просто вывести список доступных обновлений, которые будут установлены по умолчанию в соответствии с предпочтениями пользователя в диспетчере обновлений, вам, вероятно, понадобится следующее:

$ mintupdate-tool -r list

Вероятно, вам не понадобится опция «-r» в следующих командах, чтобы избежать сюрпризов.

Чтобы выполнить пробный прогон того, что будет делать реальное обновление с помощью этого инструмента:

$ mintupdate-tool --dry-run upgrade

Чтобы фактически выполнить то же самое обновление, которое мы получили бы, если бы использовали Менеджер обновлений, не изменяя отображаемые параметры:

$ sudo mintupdate-tool upgrade

По моему мнению, это существенная оплошность — не включать столбец типа обновления для команды «list», как она отображается в Update Manager, и не предоставлять никаких средств для запроса описания обновления или журнала изменений. Мой текущий пример:

$ sudo mintupdate-tool -l 12345 list
4 package         mesa                                          17.2.4-0ubuntu1~16.04.4

Это обновление уровня 4 под названием "mesa", которое не является именем пакета, поэтому я не могу запросить его с помощью других известных мне инструментов командной строки. Я знаю из Update Manager, что это конкретное обновление на самом деле включает 9 различных пакетов, но это обман.

Theисходный код.

Связанный контент