Почему apt подсказывает мне ввести полную фразу при очистке пакета?

Не пытайтесь выполнить эту команду.

Пока я пытаюсь очистить пакет login, терминал просит меня ввести весь текст, а не [Y/n].

Почему это побуждает меня ввести весь текст Yes, do as I say!? Что произойдет, если я введу Y или Yes?

1
задан 19 March 2014 в 17:53

3 ответа

Ключ находится в подсказке

Следующие основные пакеты будут удалены.

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

Вы можете увидеть установленные необходимые пакеты с aptitude search '~E~i', которые в настоящее время (в поле 13.10) дает следующие пакеты:

Следующие существенные пакеты будут удалены

apt base-files base-passwd bash bsdutils coreutils dash debianutils diffutils dpkg e2fsprogs findutils grep gzip hostname libc-bin login mount ncurses-base ncurses-bin perl-base sed tar util-linux

Мне было любопытно, какие команды могут (я знаю, что coreutils довольно массивный), поэтому построил следующий запрос монстра for f in $(aptitude search '~E~i' | awk '{print $2}' | xargs dpkg -L); do [[ $(type -P "${f##*/}") == "$f" ]] && echo ${f##*/}; done

4
ответ дан 24 May 2018 в 10:38

В пакетах есть несколько полей, заполненных информацией, в одном из этих полей указывается важность пакета, который называется priority. Для пакетов есть два приоритета: без них вы не получаете функциональную систему essential и required.

Эти пакеты устанавливаются по умолчанию во всех установках Ubuntu / Debian. Всякий раз, когда вы пытаетесь удалить их, установщик попросит вас указать, что вы уверены, поэтому вы понимаете последствия своих действий. Поэтому, если вы продолжите удаление, очень вероятно, что какая-то часть системы будет полностью нарушена, и вы больше не сможете ее загружать.

Чтобы получить список пакетов, которые имеют эти приоритеты я рекомендую использовать aptitude:

aptitude search ~prequired
aptitude search ~pimportant

Или, если вам нравится синаптика, вы должны выбрать, чтобы показывать приоритеты пакетов.

1
ответ дан 24 May 2018 в 10:38

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

Его заявленная цель (найденная в исходном коде):

apt-get - Cover for dpkg
This is an allout cover for dpkg implementing a safer front end.

Другими словами, apt-get реализует проверки безопасности, что другие утилиты, которые взаимодействуют с менеджером пакетов, могут не

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

Do you want to continue [Y/n]?

Но если он видит что пакеты, определенные в диспетчере пакетов с приоритетом essential, будут удалены, он следует за списком пакетов с этим предупреждением:

WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!

Затем он заменяет стандартное приглашение продолжения более строгим приглашением, которое не может подтверждается случайно, так как ответ должен соответствовать символу приглашения для символа:

You are about to do something potentially harmful.
To continue type in the phrase "Yes, do as I say!"

apt-get затем разрешит транзакции перейти к apt, которая, в свою очередь, взаимодействует с dpkg.

Важно отметить, что поведение, отмеченное в этом вопросе, исходит исключительно из apt-get и что, опять же, заявленная цель apt-get заключается в предоставлении e этот вид защитного слоя.

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

0
ответ дан 24 May 2018 в 10:38

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

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