Со справочной страницы:
-m, --ignore-missing, --fix-missing Ignore missing packages; if packages cannot be retrieved or fail the integrity check after retrieval (corrupted package files), hold back those packages and handle the result. Use of this option together with -f may produce an error in some situations. If a package is selected for installation (particularly if it is mentioned on the command line) and it could not be downloaded then it will be silently held back. Configuration Item: APT::Get::Fix-Missing.
Это сбивает с толку:
- Как "игнорировать пропущенное" и "исправить пропущенное" могут быть синонимами для одного и того же параметра?
- Что означает "сдерживаться" в этом контексте?
- Что означает "обрабатывать результат"?
И в какой ситуации это вообще полезно? Когда вы пытаетесь установить пакет, которого нет в индексе apt, вы получаете это сообщение:
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Это два предложения (apt-get update
, apt-get install --fix-missing...
) вообще эквивалентно?
Хорошо, по порядку:
- (1) - м игнорировать потерянный или исправить потерянный пакеты (в отличие от -f сломанный пакеты). Эти варианты являются синонимы для того же варианта. (Поскольку, чтобы исправить это, он игнорирует, отсюда он берет свое странность :-) )
- (2-3) При установке / обновлении с помощью
apt-get upgrade
или с apt-get install somepackage
, обычно apt пытается обновить зависимости. Это означает, что он может обнаружить, что некоторым пакетам требуются новые или обновленные версии существующих пакетов, и так далее в каскаде зависимостей. Если некоторые из этих пакетов отсутствуют или не проходят проверку целостности, похоже, что приостановить этот пакет и хочет, чтобы вы отправились в справляться результат, следующий за способ обработки из требуемого пакета, если это возможно. Часто он прекращает установку этого пакета.
- (4) С
apt-get update
вы загружаете то, что необходимо для перестройки списка зависимостей.
После этого вы можете попробовать apt-get install --fix-missing
опять же, в надежде, что обновленный список исправит проблему сам по себе.
Иногда это может быть очень полезно, например, когда вы добавляете источник для пакетов в свой /etc/atp/sources.list
, или когда индексные файлы пакета были обновлены.
Не все программы, которые вы можете использовать в Ubuntu, взяты из официальных репозиториев Ubuntu и обновляются одними и теми же версиями - это редкость.
Более того, существует множество причин, по которым установка может быть внезапно прервана (сигнал завершения, нехватка питания, сбой графического драйвера ...) В таких ситуациях, apt-get update
может не сработать, поэтому сначала вам нужно устранить проблему с помощью apt-get install --fix-missing
или с некоторыми dpkg
команды.
Вы можете видеть apt-get install --fix-missing
как легкая и удобная версия команд, таких как dpkg-reconfigure --all
или dpkg
.
Следующие шаги позволят решить проблему:
- Обновите
nameserver 8.8.8.8
в /etc/resolve.conf
- Бежать
sudo apt-get update
Да, это странно. Я всегда думал, что “–fix-missing” - это синоним -f
. Однако поведение должно быть таким же, как у Synaptic: попробуйте обновить только загруженные пакеты.