Неудачное обновление веб-версии Discourse. Обновление веб-версии в Docker прошло успешно

Веб-версия обновления Docker прошла успешно, а веб-версия обновления Discourse не удалась.
Я сбросил неудачное обновление, но веб-приложение сообщило, что обновление выполняется.

Попробовал обновить Discourse вручную:

cd /var/discourse
./launcher rebuild app

Получил следующую ошибку:
ERROR: Docker version 19.03.13 not supported, please upgrade to at least 20.10.0, or recommend 24.0.7

Попытался обновить Docker вручную:

wget -qO- https://get.docker.com/ | sh

Получил следующую ошибку:
E: Could not get lock /var/lib/dpkg/lock-frontend. It is being held by process 10528 (apt-get)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

Мой сайт Discourse недоступен с ошибкой Oops-Error 500.
Есть какие-то идеи?

Есть несколько тем, посвященных этой ошибке версии Docker:

Coin, спасибо за ссылки на темы!

У меня версия Docker 19.03.13. Затем я пытаюсь обновить операционную систему командой:

sudo apt update && sudo apt upgrade -y 3

и обновление зависает на…

Ожидание блокировки кэша: не удалось получить блокировку /var/lib/dpkg/lock-frontend. Она удерживается процессом 10528 (apt-get)… 454с

при этом счётчик секунд продолжает расти.

Вот исправление от ChatGPT. Ключевым моментом было принудительное завершение зависшего процесса на шаге 3.

Ошибка указывает на то, что другой процесс apt или управления пакетами уже запущен и удерживает файл блокировки /var/lib/dpkg/lock-frontend. Это препятствует выполнению вашей команды apt. Вот как решить эту проблему:

Шаги для решения проблемы

  1. Проверка запущенных процессов apt
    Выполните следующую команду, чтобы проверить наличие других процессов apt:

    ps aux | grep apt
    

    Ищите процессы, такие как apt-get, apt или dpkg. Если процесс запущен (например, apt-get или dpkg), возможно, он обновляет или устанавливает что-то в фоновом режиме.

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

  3. Принудительное завершение зависшего процесса
    Если процесс работает аномально долго, вы можете завершить его:

    sudo kill -9 <PID>
    

    Замените <PID> на идентификатор процесса (например, 10528 в вашем случае).

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

    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/dpkg/lock
    
  5. Перенастройка базы данных пакетов
    Выполните эту команду для устранения возможных проблем с менеджером пакетов:

    sudo dpkg --configure -a
    
  6. Повторите обновление
    Теперь повторите команду обновления:

    sudo apt update && sudo apt upgrade -y
    

Примечания

  • Если эта проблема возникает часто, проверьте, не выполняются ли в фоновом режиме автоматические обновления. Они могут вызывать конфликты при ручном управлении пакетами.
  • Чтобы отключить автоматические обновления, выполните:
    sudo systemctl disable --now unattended-upgrades