“Попытка запустить отложенный элемент” … “но не удалось” в выводе apt-get install

Вопрос или проблема

Я недавно начал использовать новую дистрибуцию (Linux Mint 21, которая, как я прочитал, основана на Ubuntu 22.04). И при установке некоторых пакетов я часто вижу много одинаковых строк в конце вывода apt-get install:

“Попытка запустить отложенный элемент” http…ubuntu jammy package-name “не удалась”

Веб-поиск по запросу “Попытка запустить отложенный элемент” “не удалась” нашел только пару ссылок с ошибками (я видел только отчеты об ошибках, обсуждений не было). Я также не смог найти, что такое “отложенный элемент” для apt-get.

Что такое эти отложенные элементы и что означает ошибка? Заранее благодарен.

Скопируйте deb файлы в папку кэша dpkg (обычно /var/cache/apt/archives/) и выполните apt-get install /cache_folder/*.deb, таких предупреждений не наблюдается, если сделать это таким образом.

Кратко

Как отмечено в моем комментарии к вопросу, предупреждение возникает при установке deb файлов в оффлайн-режиме, код, который его производит, находится в aquire.cc (https://salsa.debian.org/apt-team/apt.git):

if (I->Items->Owner->Status == pkgAcquire::Item::StatIdle)
        {
           _error->Warning("Попытка запустить отложенный элемент %s, но не удалось", I->Items->Description.c_str());
        }

Из множества тестовых запусков я заметил, что когда deb файлы находятся в кэш папке, apt не пытается переустановить (скачать из репозиториев). Когда deb файлы находятся где-то еще, apt пытается получить пакеты, соответствующие deb файлам, отсюда “Примечание: выбирается packagename вместо debfile” в выводе для каждого? deb файла (не уверен почему, возможно, в случае если доступны новые версии?).

Кажется, есть некоторый таймаут для попытки получить пакеты из репозиториев, после которого он сдается (например, при запуске в терминале количество предупреждений было ~500, но когда вывод напрямую перенаправлялся в файл, это было ~7000.). Почему предупреждения относятся только к некоторым редким “отложенным элементам”, я не установил.

Я не заметил недостатков в функциональности после установки как способом кэширования, так и каким-то другим способом, однако количество строк “попытка запустить” иногда достигало тысяч, и они создавали проблемы при чтении вывода.

Мне удалось воспроизвести это с Linux Mint 21 liveISO и набором из 3 deb файлов (это часть sqlitebrowser, например, apt-get install --download-only sqlitebrowser):

libqscintilla2-qt5-l10n_2.11.6+dfsg-4_amd64.deb
libqscintilla2-qt5-15_2.11.6+dfsg-4_all.deb
libqtprintsupport5_5.15.3+dfsg-2ubuntu0.2_amd64.deb

Интересно, что предупреждение упоминает libqscintilla2-qt5-l10n, у которого нет зависимостей, и когда он устанавливается самостоятельно (сразу после загрузки liveISO), это не вызывает предупреждений.

Ответ или решение

Понимание ошибок "Tried to start delayed item" в apt-get на Linux Mint 21

Когда вы устанавливаете пакеты в Linux Mint 21 (основанном на Ubuntu 22.04) с помощью команды apt-get install, вы можете столкнуться с предупреждением, которое звучит как "Tried to start delayed item … but failed". Давайте разберемся, что означает эта ошибка и как с ней справиться.

Что такое "delayed item"?

Термин "delayed item" относится к процессу управления установкой пакетов в системе управления пакетами APT. Во время установки APT может пытаться загрузить или установить некоторые пакеты, которые ранее не были доступны. Это может произойти по нескольким причинам, например, если пакеты зависят от других пакетов, которые еще не были загружены или установлены.

Причины появления предупреждений

  1. Оффлайн-режим: Когда вы устанавливаете пакеты в режиме оффлайн (без подключения к Интернету), APT пытается загрузить и установить пакеты из кэша (или локальных .deb файлов). Если некоторые из этих пакетов не могут быть загружены или установлены, вы увидите предупреждение о том, что APT «попробовал запустить отложенный элемент», но не смог этого сделать.

  2. Превышение времени ожидания: При попытке получить доступ к репозиториям APT может превышать определенное время ожидания, что также приведет к появлению этого предупреждения. Это может произойти, когда соединение с сетью нестабильное или отсутствует доступ к необходимым репозиториям.

  3. Версии пакетов: Если в кэше имеются более старые версии необходимых пакетов, APT может пытаться их загрузить, но если требуется версия, которая отсутствует, или если пакет был перемещен в репозитории, это может также вызвать данное предупреждение.

Как избежать предупреждений

  1. Кэширование пакетов: Как вы уже заметили, перенаправление .deb файлов в кэш APT (/var/cache/apt/archives/) помогает избежать предупреждений. В этом случае APT сможет найти и установить необходимые пакеты без необходимости повторно загружать их из репозиториев.

  2. Проверка зависимостей: Убедитесь, что все зависимости ваших пакетов установлены. Иногда проблема заключается в том, что некоторым пакетам требуются другие, которые не установлены или имеют конфликт версий.

  3. Использование полного пути к .deb: Если вы хотите установить .deb файлы, вы можете использовать команду apt-get install /cache_folder/*.deb, чтобы избежать попыток APT перезагрузить и переустановить пакеты.

  4. Мониторинг сетевого подключения: Убедитесь в надежности вашего сетевого соединения во время установки пакетов, чтобы избежать тайм-аутов и зависаний.

Заключение

Ошибки "Tried to start delayed item" указывают на проблемы с получением и установкой пакетов в вашей системе. Понимание причины их появления и применение нескольких простых стратегий может значительно снизить количество этих предупреждений и улучшить процесс установки пакетов. Если вы не заметили никаких функциональных недостатков после установки пакетов, вероятно, это следствие успешной установки, однако рекомендуется регулярно проверять наличие обновлений и зависимостей для обеспечения стабильности системы.

Оцените материал
Добавить комментарий

Капча загружается...