Как мне удалить только один конкретный пакет с помощью apt-get?

18

Я только что установил MySQL-сервер и все его зависимости, помимо прочего. Но когда он перешел к настройке mysql-сервера, он не смог этого сделать и выложил ошибку. Какая ошибка здесь не имеет значения, так как мне удалось найти проблему как проблему зависимости между mysql-server и mysql-common. Mysql-общее необходимо удалить.

Но когда я иду в

apt-get purge remove mysql-common 

Он также автоматически хочет удалить все, что с ним связано, включая все зависимости mysql, даже apache2 и php5.

Итак, какой аргумент необходимо добавить в команду apt-get, чтобы удалить ТОЛЬКО ОДИН пакет, но все остальные оставить без изменений.

бессонница
источник

Ответы:

21

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

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

sudo dpkg --remove mysql-common

Примечание : В моей системе 12.04 с apache2, php5, mysql-serverустановленной отдельно, использование apt-getдля удаления mysql-commonНЕ хочет удалять apache2 или php5 .

Из комментария бессонницы: Если вам нужно отменить решение системы зависимости, вы можете (с большой осторожностью и убедившись, что знаете, что делаете) использовать дополнительное --force-depends.

sudo dpkg --remove --force-depends mysql-common
иш
источник
Хорошо спасибо. Многие другие утверждали, что это сработало. Я имею в виду много людей. Но да, это происходит на Ubuntu. Но я на самом деле на Debian. Но я спросил здесь, потому что я здесь пользователь, и они очень похожи, а система пакетов такая же ... спасибо, приятель.
бессонница
не волнуйся человек. Я не оставлю тебя в покое. Я всегда принимаю. Люди обычно игнорируют это после того, как я принимаю, и проблема все еще существует. Но я только попробовал это, и это не позволило бы мне. Есть ли силовая команда?
бессонница
Извините, это правильно - я думаю, вам нужно подождать некоторое время, прежде чем вы сможете это сделать - я думаю, 15 минут? Пожалуйста, попробуйте еще раз, когда у вас есть шанс, не спешите. Кроме того, я только что заметил, что вы упомянули, что вы используете Debian - обратите внимание, что вопросы, касающиеся Debian, не относятся к теме и часто закрыты как таковые. Пожалуйста , обратите внимание просить о unix.stackexchange.com чего - то Debian-специфического в будущем :)
иш
Да, я подумал, что так .. главная причина, почему я действительно не упомянул об этом, пока мне не понадобилось. Я имею в виду, что их менеджеры пакетов одинаковы, Ubuntu просто работает с Debian. но хорошо. 15-минутная вещь не работает, потому что, потому что я пробовал намного дольше, чем 15 минут после. Но я не могу напечатать что-то похожее на "dpkg -f --remove mysql-common"?
бессонница
Если обычный --removeвыдает вам предупреждение и прерывает работу, вы можете принудительно сделать это -f. Кстати, так --removeже, как -r.
иш
0

Если кто-то хотел бы знать там команду debian 2014:

dpkg --force-all -r name_of_package

Его немного изменилось

Существует множество аргументов --force-, так что ради зависимости лучше проверить их:

dpkg --force-help
Михал Сапса
источник
--force-allбезусловно, небезопасно, почему бы не предложить --force-dependsИ не дать соответствующее предупреждение тоже?
Гюнтберт
Никогда не безопасно удалить пакет, необходимый для других пакетов, не удаляя другой. --force-all - это просто быстрый и грязный подход
Михал Сапса