Як я можу видалити лише один певний пакет із apt-get?


18

Я щойно встановив MySQL-сервер та всі його залежності, серед інших необхідних. Але коли він пішов налаштувати mysql-сервер, він цього не зробив, і виплюнув помилку. Яка помилка тут не актуальна, оскільки мені вдалося знайти проблему як проблему залежності між mysql-сервером та 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 просто дебін. але добре. 15-річна річ не працює, хоча я спробував шлях довше, ніж 15 хвилин після. Але не можу я набрати щось подібне до "dpkg -f --remove mysql-common"?
безсоння

Якщо звичайний --removeсигнал дає вам попередження і перериває, то, звичайно, ви можете з цим примусити -f. До речі, --removeте саме, що -r.
Останній

0

Якщо хтось хотів би знати там 2014 команда debian:

dpkg --force-all -r name_of_package

Його трохи змінилося

Існує багато аргументів --force-, тому заради поважності краще перевірити їх:

dpkg --force-help

--force-allце, безумовно, не є безпечним, чому б не запропонувати --force-dependsТА також не подати відповідне попередження?
Гунтберт

Ніколи не можна безпечно видаляти пакет, необхідний для інших пакетів, не видаляючи інший. - сила - все просто швидкий і брудний підхід
Міхал Сапса
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.