Доступна ли ещё команда dpkg-reconfigure --all в 16.04?

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

После обновления до 16.04, я попробовал использовать эту команду, но похоже, что dpkg-reconfigure (или dpkg --reconfigure) не понимает опцию --all.

Она все еще доступна? Если нет, существует ли эквивалентная команда?

Не эквивалентная, но, вероятно, то, что вы ищете, если хотите убедиться, что все по крайней мере как-то настроено:

dpkg --configure -a

Вы можете попробовать этот скрипт:

for i in `dpkg -l | grep '^ii' | awk '{print $2}'`; do
    echo $i; sudo dpkg-reconfigure $i;
done

Он перенастраивает все установленные пакеты.

Нет, dpkg-reconfigure на 16.04 (но также на 15.10) больше не имеет опции --all, хотя она была в 14.04 (не уверен насчет 14.10).

Вы могли бы убедиться в этом самостоятельно, проверив man-страницу команды:

man dpkg-reconfigure

На системе 16.04 (или 15.10) эта страница не будет содержать аргумент --all, тогда как на 14.04 он присутствует.

Если у вас нет таких систем, просто прочтите онлайн man-страницы: 16.0415.1014.04
(замечание для будущих читателей: если одно из связанных выпусков станет устаревшим на момент вашего прочтения, ссылка перенаправит на man-страницу последнего выпуска вместо того, чтобы показывать старую, архивированную версию)

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

Выполняя миграцию или обновление систем, таких как Ubuntu, важно знать о том, какие команды и инструменты остаются доступными в новой версии, и какие могут быть изменены или удалены. В случае с командой dpkg-reconfigure --all, ситуация как раз такова.

Теория

dpkg-reconfigure — это команда, которая используется для перенастройки пакетов в системах на базе Debian. Она позволяет пользователю вызвать процесс настройки для уже установленных пакетов, таким образом предоставляя возможность изменения конфигурационных параметров, заданных на этапе установки.

В предыдущих версиях, таких как Ubuntu 14.04, команда dpkg-reconfigure поддерживала параметр --all, который позволял перенастраивать все установленные пакеты сразу. Однако, начиная с Ubuntu 16.04 и даже ранее — в версии 15.10, параметр --all был удален из списка доступных аргументов.

Пример

Часто может возникнуть ситуация, когда после обновления системы необходимо удостовериться, что все пакеты настроены корректно. При использовании Ubuntu 14.04 вы могли бы выполнить команду:

sudo dpkg-reconfigure --all

Однако, в Ubuntu 16.04 эта команда вызовет ошибку, так как параметр --all больше не поддерживается, что можно подтвердить, проверив документацию (man dpkg-reconfigure).

Применение

Хотя --all и был удален, существует несколько альтернативных подходов, которые могут удовлетворить потребность в повторной настройке всех пакетов:

  1. Использование dpkg --configure -a:

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

    sudo dpkg --configure -a
  2. Скрипт для перебора всех пакетов:

    Далее приводится пример сценария на Bash, который может быть использован для перебора каждого установленного пакета и вызова dpkg-reconfigure для них.

    for i in `dpkg -l | grep '^ii' | awk '{print $2}'`; do
        echo $i; sudo dpkg-reconfigure $i;
    done

    Этот скрипт выполняет команды последовательно для каждого пакета, который имеет статус "инсталлирован и не нуждается в конфигурации" (‘ii’).

  3. Чтение и обновление документации:

    Как видно, изменения в функционале команды можно было обнаружить даже просто проверив manpages, чтобы удостовериться в текущем состоянии команд в новой версии.

Для долгосрочного управления системами на Ubuntu, эти практики помогают автоматически или полуручно управлять конфигурацией пакетов после крупных обновлений. Это особенно актуально в бизнес-среде, где стабильность и уверенность в актуальности системного софта имеют первостепенную важность.

С другой стороны, постановка предложенного скрипта в cronjob с динамическим изложением посыла — это все равно, что пытаться заглушить причины обструкции тяги путем шлифования резиновым пекарем по стеклу — все равно придется выковыривать. Поэтому предпочтение отдается точечным воздействиям согласно существующей документации пакетов. Чтение и следование официальным источникам информации, таким как manpages, позволяет оставаться в курсе последних изменений в функциональности и лучше поддерживать актуальность системного окружения.

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

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