Можно ли остановить установку apt, когда процесс запущен? [dубликат]

Это не настоящее решение моего вопроса, но оно прекрасно решает то, что я хотел выполнить.

Я нашел Глобуса, чтобы заменить Gnome-Sushi с помощью этой очень приятной конструкции, которая намного легче.

35
задан 12 February 2013 в 01:33

10 ответов

Процессы убийства

Вообще говоря, для убийства процесса нет более безопасного способа убить процесс, чем при обычном убийстве (SIGTERM). В случае, если это интерактивный процесс, он обычно позволяет остановить его даже безопаснее, отправив сигнал SIGINT, обычно отправляемый нажатием Ctrl + C. Этот сигнал захватывается самим процессом, который может его прослушать, и обычно останавливается изящно. (спасибо Eliah)

База данных DPKG

Что касается управления пакетами, это своего рода частный случай. База данных DPKG, используемая командами APT под водой, всегда может определить, завершилась ли операция. Каждый пакет имеет состояние can , которое помечено как и текущее состояние, например. распакованные, настроенные и т. д. Убив интерфейс APT, база данных будет разбита, но в известном состоянии. Файлы блокировки будут освобождены только после того, как все вернется в чистое состояние - вы должны установить это исправление до тех пор, пока оно не разрешит новые операции.

Способ исправления - это просто запустить процесс, чтобы получить все пакеты в настроенной государство. Практически, если вы прервали операцию apt-get, вы можете закончить ее позже, используя

sudo dpkg --configure -a

. Он знает, как восстановить из разбитого состояния в полностью настроенное состояние и в этом смысле просто продолжайте с того места, где он был прерван. Файлы блокировки остаются там до тех пор, пока вы не закончите это, и это по какой-то причине - предотвратить новые операции с базой данных DPKG в нечистом состоянии.

О SIGKILL (9)

Отправка SIGKILL (десятичное представление 9) очень небезопасно. Этот сигнал не улавливается процессом, но весь процесс будет очищен операционной системой (ядром) независимо от того, нравится это процессу или нет. Состояние файлов в файловой системе может быть оставлено в коррумпированном состоянии. Никогда не отправляйте эти сигналы, если они больше не прослушивают другие более грациозные сигналы.

34
ответ дан 17 July 2018 в 16:20

Процессы убийства

Вообще говоря, для убийства процесса нет более безопасного способа убить процесс, чем при обычном убийстве (SIGTERM). В случае, если это интерактивный процесс, он обычно позволяет остановить его даже безопаснее, отправив сигнал SIGINT, обычно отправляемый нажатием Ctrl + C. Этот сигнал захватывается самим процессом, который может его прослушать, и обычно останавливается изящно. (спасибо Eliah)

База данных DPKG

Что касается управления пакетами, это своего рода частный случай. База данных DPKG, используемая командами APT под водой, всегда может определить, завершилась ли операция. Каждый пакет имеет состояние can , которое помечено как и текущее состояние, например. распакованные, настроенные и т. д. Убив интерфейс APT, база данных будет разбита, но в известном состоянии. Файлы блокировки будут освобождены только после того, как все вернется в чистое состояние - вы должны установить это исправление до тех пор, пока оно не разрешит новые операции.

Способ исправления - это просто запустить процесс, чтобы получить все пакеты в настроенной государство. Практически, если вы прервали операцию apt-get, вы можете закончить ее позже, используя

sudo dpkg --configure -a

. Он знает, как восстановить из разбитого состояния в полностью настроенное состояние и в этом смысле просто продолжайте с того места, где он был прерван. Файлы блокировки остаются там до тех пор, пока вы не закончите это, и это по какой-то причине - предотвратить новые операции с базой данных DPKG в нечистом состоянии.

О SIGKILL (9)

Отправка SIGKILL (десятичное представление 9) очень небезопасно. Этот сигнал не улавливается процессом, но весь процесс будет очищен операционной системой (ядром) независимо от того, нравится это процессу или нет. Состояние файлов в файловой системе может быть оставлено в коррумпированном состоянии. Никогда не отправляйте эти сигналы, если они больше не прослушивают другие более грациозные сигналы.

34
ответ дан 23 July 2018 в 17:14

Когда я сталкиваюсь с неудачей с apt-get, я делаю следующее (как root, т.е. sudo перед всеми командами):

Убейте процесс с именем apt-get: killall -9 apt-get Переконфигурируйте dpkg : dpkg --configure -a Обновить apt-get: apt-get update Обновить пакеты, в том числе неправильно установленные: apt-get upgrade

Это я узнал откуда-то, но, к сожалению, я точно не помню где.

13
ответ дан 17 July 2018 в 16:20
sudo dpkg -r <package name>

В моем случае у меня были проблемы с Java 8 на Ubuntu 12.04, поэтому ...

sudo dpkg -r oracle-java8-installer
3
ответ дан 17 July 2018 в 16:20

Вот как я это делаю, Ctrl+C. Но помните, что это безопасно, пока apt-get находится на этапе загрузки или обновляет кеш. Помимо этого я не могу думать, что это безопаснее. Просто позвольте этому закончить и отменить изменения, удалив или понизив как-нибудь. Загруженные файлы можно очистить с помощью sudo apt-get autoclean

0
ответ дан 17 July 2018 в 16:20

Linux и другие системы типа Unix очень мощны из командной строки, но очень неумолимы после запуска процесса. Отправляя процесс, сигнал kill наверняка убьет процесс, который работает, но имейте в виду, что вы оставляете базу данных в неустойчивом состоянии. Последняя запись может быть закрыта неправильно, поэтому вам придется ремонтировать базу данных. Не всегда с apt, но с любым приложением.

Всегда старайтесь закончить приложение в обычном режиме и только убивать процессы, которые запускают приложения.

0
ответ дан 17 July 2018 в 16:20

Когда я сталкиваюсь с неудачей с apt-get, я делаю следующее (как root, т.е. sudo перед всеми командами):

Убейте процесс с именем apt-get: killall -9 apt-get Переконфигурируйте dpkg : dpkg --configure -a Обновить apt-get: apt-get update Обновить пакеты, в том числе неправильно установленные: apt-get upgrade

Это я узнал откуда-то, но, к сожалению, я точно не помню где.

13
ответ дан 23 July 2018 в 17:14
  • 1
    Пожалуйста, никогда не отправляйте сигнал 9 (SIGKILL), если у вас нет веских оснований для этого. См. Мой обновленный ответ. – gertvdijk 12 February 2013 в 03:38
sudo dpkg -r <package name>

В моем случае у меня были проблемы с Java 8 на Ubuntu 12.04, поэтому ...

sudo dpkg -r oracle-java8-installer
3
ответ дан 23 July 2018 в 17:14

Вот как я это делаю, Ctrl+C. Но помните, что это безопасно, пока apt-get находится на этапе загрузки или обновляет кеш. Помимо этого я не могу думать, что это безопаснее. Просто позвольте этому закончить и отменить изменения, удалив или понизив как-нибудь. Загруженные файлы можно очистить с помощью sudo apt-get autoclean

0
ответ дан 23 July 2018 в 17:14

Linux и другие системы типа Unix очень мощны из командной строки, но очень неумолимы после запуска процесса. Отправляя процесс, сигнал kill наверняка убьет процесс, который работает, но имейте в виду, что вы оставляете базу данных в неустойчивом состоянии. Последняя запись может быть закрыта неправильно, поэтому вам придется ремонтировать базу данных. Не всегда с apt, но с любым приложением.

Всегда старайтесь закончить приложение в обычном режиме и только убивать процессы, которые запускают приложения.

0
ответ дан 23 July 2018 в 17:14

Другие вопросы по тегам:

Похожие вопросы: