Если я запускаю команду apt-get install [package_name]
и нажимаю CTRL-C в середине процесса, останавливается ли установка и возвращается ли она к исходному состоянию?
1 ответ
Когда я обновил машину с Ubuntu до 12.04, мне удалось случайно закрыть терминал, который был подключен к процессу обновления. Как ни странно, процесс фактически продолжался в фоновом режиме (до тех пор, пока не появилось приглашение "Хотите установить новую версию этого файла конфигурации", и я его убил). Это показывает, что процесс обновления написан надежно.
Вчера на компьютере с Debian Sid я установил Ctrl+C:ed. Приглашение было возвращено мне, но Aptitude продолжала выдавать сообщения о прогрессе в терминал в течение короткого времени, пока не завершилось текущее действие.
Я полагаю, что Aptitude (который я использую, и я предполагаю, что apt-get
ведет себя аналогично) пытается интеллектуально обрабатывать сигналы, и как только действие начнется (например, установка / замена / удаление), оно сделает все возможное, чтобы фактически завершить это перед выходом из процесса, чтобы не оставлять систему (и особенно состояние глобальной конфигурации пакета) в неопределенном состоянии.
Я только что попытался отправить Ctrl+C во время загрузки пакета, и загружаемый в данный момент пакет был прерван и не был сохранен в полу-загруженном состоянии. Простое выполнение нового sudo aptitude dist-upgrade
перезапустило процесс с файлом, который был загружен неправильно.
Эта похвала, как говорится: если пара пакетов уже настроена, они не будут откатиться к предыдущим версиям, если процесс будет прерван. Лучшее, что он может сделать, - это быстро очистить, разумно позволить вам перезапустить процесс обновления и, надеюсь, начать с того места, где вы его оставили. После этого и выполнения всех ожидающих действий состояние пакета снова становится "очищенным", и вы можете попытаться откатить версии и т.д., Если это необходимо.
Последнее замечание: не начинайте в зависимости от этого поведения, так как это очень грубое обращение с системой пакетов и всегда может привести к проблемам с пакетами (исправимо, но часто с некоторыми ручными загрузками пакетов и dpkg
).