с помощью yum, как можно удалить пакет, но не удалить его зависимости одновременно?

Когда оболочка выходит из системы, она может послать сигнал HUP фоновым заданиям, что может привести к их завершению. Сигнал SIGHUP посылается только если оболочка сама получает сигнал SIGHUP, т.е. только если терминал выходит (например, из-за того, что процесс эмулятора терминала умирает), а не если вы выходите из оболочки обычным образом (с помощью встроенной команды exit или набрав Ctrl+D). Подробнее см. в В каких случаях SIGHUP не посылается заданию при выходе из системы? и Существует ли в UNIX вариант, в котором дочерний процесс умирает вместе с родительским?. В bash вы можете установить опцию huponexit, чтобы также посылать SIGHUP фоновым заданиям при обычном выходе. В ksh, bash и zsh вызов disown для задания удаляет его из списка заданий для отправки SIGHUP. Процесс, получивший SIGHUP, может проигнорировать или перехватить сигнал, и тогда он не умрет. Использование nohup при запуске программы делает ее невосприимчивой к SIGHUP.

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

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

Если задание содержит несколько процессов (например, конвейер), то все эти процессы находятся в одной группе процессов. Группы процессов были придуманы именно для того, чтобы отразить понятие задания оболочки, состоящего из нескольких связанных процессов. Вы можете увидеть процессы, сгруппированные по группам процессов, отобразив их идентификатор группы процессов (PGID - обычно это идентификатор первого процесса в группе), например, с помощью ps l в Linux или чего-то вроде ps -o pid,pgid,tty,etime,comm портативно.

Вы можете убить все процессы в группе, передав отрицательный аргумент в kill. Например, если вы определили, что PGID конвейера, который вы хотите убить, равен 1234, то вы можете убить его с помощью

kill -TERM -1234

11
22.06.2017, 01:47
2 ответа

Появляется возможным , при использовании об/мин:

$ rpm -e --nodeps packageA

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

25
27.01.2020, 19:58

Я обнаружил, что это можно сделать с помощью yum вот так:

sudo yum remove --noautoremove <package name>
6
27.01.2020, 19:58

Теги

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