Иногда в Ubuntu, если мои пакеты запутываются, мне нужно запустить apt-get -f install чтобы исправить это.

Если это обычное исправление, почему это не происходит автоматически?

Есть ли причина, по которой я бы не хотел его запускать?

2 ответа2

4

Опция -f (или эквивалентная длинная версия, --fix-broken) делает попытку apt-get исправить нарушенные зависимости. Если вы спросите, почему он не включен по умолчанию, я бы сказал, что полезно знать, когда в ваших пакетах возникают проблемы, а затем исправлять их.

2

Похоже, ваш вопрос указывает на то, что до сих пор вы сталкивались с незначительными проблемами при обработке вашего пакета. Пример такой простой проблемы возникает, когда вы устанавливаете google-chrome, где установка завершается неудачно из-за отсутствия пакета libappindicator1, а простой вызов apt-get -f install загрузит отсутствующий пакет, а затем возобновит и завершит работу установка гугл-чорме.

Увы, не все ситуации так просты. Иногда вы сталкиваетесь с действительно сложными проблемами, когда вам нужно понизить версию некоторых пакетов, чтобы вы могли обновить какой-то другой пакет. В этих условиях у вас, скорее всего, будет открыто несколько курсов, и вы, скорее всего, захотите / должны иметь возможность выбирать между различными возможностями. Даже расположение различных доступных курсов не является стандартным и зависит от используемого инструмента. Вы упоминаете apt-get -f install, который на самом деле является довольно простым инструментом (но лучше, чем его предшественник, deborphan, для которого в настоящее время я редко нахожу применение).

На самом деле, в этих ситуациях я предпочитаю гораздо более умелые способности, о которых говорится в Руководстве администратора Debian (стр. 285):

6.4.1.3. Лучше решающие алгоритмы

В заключение отметим, что aptitude имеет более сложные алгоритмы по сравнению с apt-get, когда речь идет о разрешении сложных ситуаций. Когда запрашивается набор действий и когда эти объединенные действия приводят к непоследовательной системе, aptitude оценивает несколько возможных сценариев и представляет их в порядке убывания релевантности. Однако эти алгоритмы не являются отказоустойчивыми. К счастью, всегда есть возможность вручную выбрать действия для выполнения. Когда выбранные в настоящий момент действия приводят к противоречиям, в верхней части экрана указывается количество «разбитых» пакетов (и вы можете напрямую перейти к этим пакетам, нажав b). Затем можно вручную построить решение для найденных проблем. В частности, вы можете получить доступ к различным доступным версиям, просто выбрав пакет с помощью Enter. Если выбор одной из этих версий решает проблему, не стесняйтесь использовать эту функцию. Когда количество сломанных пакетов становится равным нулю, вы можете безопасно перейти к экрану сводки ожидающих действий для последней проверки перед их применением.

Таким образом, вы видите, что ни инструмент, используемый для решения сломанной конфигурации, ни доступный вам порядок действий не являются такими простыми, как вы, возможно, предполагаете. Таким образом, лучше оставить каждому пользователю свободу воли, выбрав инструмент (deborphan/apt-get/aptitude/synaptic/ CLI/ ...) и выбор пакетов, если этот выбор не является однозначным.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .