Вопрос или проблема
После обновления Ubuntu с 18.04 до 20.04 и до 21.04 я сталкиваюсь с этой проблемой, не могу ни установить, ни удалить пакеты.
[sudo] пароль для commaderwolfer:
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
git уже является самой новой версией (1:2.32.0-1~ppa0~ubuntu18.04.1).
0 обновлено, 0 новых установлено, 0 удалено и 14 не обновлено.
1 не полностью установлен или удален.
После этой операции будет использовано 0 Б дополнительного дискового пространства.
Хотите продолжить? [Y/n] y
Настройка postfix (3.5.6-1) ...
Конфигурация Postfix (main.cf) не была изменена. Если вам нужно внести изменения,
отредактируйте /etc/postfix/main.cf (и другие) по мере необходимости. Чтобы просмотреть значения
конфигурации Postfix, смотрите postconf(1).
После изменения main.cf обязательно выполните 'systemctl reload postfix'.
Выполнение newaliases
newaliases: предупреждение: valid_hostname: неверный разделитель: CommanderWolfer..
newaliases: критическая ошибка: файл /etc/postfix/main.cf: параметр myhostname: неверное значение параметра: CommanderWolfer..
dpkg: ошибка при обработке пакета postfix (--configure):
подпрограмма post-installation script установленного пакета postfix возвратила ошибку завершения состояния 75
Обработка триггеров для libc-bin (2.33-0ubuntu5) ...
Возникли ошибки при обработке:
postfix
E: Подпроцесс /usr/bin/dpkg возвратил код ошибки (1)
```
после выполнения sudo dpkg --configure -a
sudo dpkg --configure -a
Настройка postfix (3.5.6-1) ...
Конфигурация Postfix (main.cf) не была изменена. Если вам нужно внести изменения,
отредактируйте /etc/postfix/main.cf (и другие) по мере необходимости. Чтобы просмотреть значения
конфигурации Postfix, смотрите postconf(1).
После изменения main.cf обязательно выполните 'systemctl reload postfix'.
Выполнение newaliases
newaliases: предупреждение: valid_hostname: неверный разделитель: CommanderWolfer..
newaliases: критическая ошибка: файл /etc/postfix/main.cf: параметр myhostname: неверное значение параметра: CommanderWolfer..
dpkg: ошибка при обработке пакета postfix (--configure):
подпрограмма post-installation script установленного пакета postfix возвратила ошибку завершения состояния 75
Обработка триггеров для libc-bin (2.33-0ubuntu5) ...
Возникли ошибки при обработке:
postfix
E: Подпроцесс /usr/bin/dpkg возвратил код ошибки (1)
Сообщение об ошибке выше может быть из-за поврежденной базы данных dpkg или поврежденного пакета (postfix). Используйте следующие команды для решения проблемы. Откройте терминал для выполнения команд.
Переконфигурируйте базу данных dpkg с помощью команды
sudo dpkg --configure -a
Исправьте поврежденные пакеты с помощью
sudo apt install --fix-broken
Вышеуказанные команды могут решить проблему. Если нет, попробуйте переустановить postfix после удаления старой версии.
Удалите старую версию с помощью
sudo apt remove --purge postfix
Затем очистите старые и ненужные пакеты с помощью команды
sudo apt clean
sudo apt autoremove
Обновите и обновите пакеты
sudo apt update
sudo apt upgrade
Переустановите пакет
sudo apt-get install postfix
Ответ или решение
Проблема, с которой вы столкнулись после обновления Ubuntu с версии 18.04 до 21.04, связана с ошибками при обработке пакета Postfix. Сообщение об ошибке "Errors were encountered while processing: postfix E: Sub-process /usr/bin/dpkg returned an error code (1)" указывает на проблемы с конфигурацией Postfix, а именно с параметром myhostname
в файле конфигурации /etc/postfix/main.cf
.
Теория
Основная проблема заключается в некорректной записи имени хоста (myhostname
) в конфигурационном файле Postfix. В вашем случае используется имя "CommanderWolfer..", и два подряд идущих символа точки ("..") приводят к тому, что Postfix считает его недопустимым. Имя хоста должно соблюдать определенные правила, которые включают в себя:
- Имя должно начинаться и заканчиваться буквой или цифрой.
- Имя может содержать только буквы, цифры, тире и точки.
- Точки используются для разделения различных уровней домена, и между двумя точками должно быть как минимум одно слово.
Пример
Для исправления проблемы рассмотрим пример правильной конфигурации. Например, корректным значением для myhostname
может быть следующее: "commanderwolfer.local" или "commanderwolfer.example.com". Важно удостовериться, что имя соответствует правилам DNS.
Применение
Теперь перейдем к пошаговому решению проблемы, которое позволит устранить возникшую ошибку:
-
Редактирование файла конфигурации Postfix:
Откройте файл конфигурации Postfix для редактирования:
sudo nano /etc/postfix/main.cf
Найдите строчку с параметром
myhostname
и убедитесь, что она исправлена:myhostname = commanderwolfer.local
После внесения изменений сохраняем файл и выходим из редактора (в nano для этого нажмите
Ctrl + O
, затемEnter
, иCtrl + X
для выхода). -
Перезапуск Postfix:
После редактирования файла конфигурации перезапустите Postfix:
sudo systemctl restart postfix
-
Завершение процесса настройки пакетов:
Попробуйте снова завершить настройку пакетов:
sudo dpkg --configure -a
-
Исправление зависимостей:
Если остаются проблемы, попробуйте исправить поломанные зависимости:
sudo apt install --fix-broken
-
Удаление и повторная установка Postfix:
Если предыдущие шаги не помогли, может понадобиться полное удаление и повторная установка Postfix:
-
Полное удаление Postfix и очищение системы от его следов:
sudo apt remove --purge postfix sudo apt clean sudo apt autoremove
-
Обновление списка пакетов и система:
sudo apt update sudo apt upgrade
-
Повторная установка Postfix:
sudo apt-get install postfix
-
После прохождения всех вышеперечисленных шагов проблема должна быть решена, и система выйдет на стабильный режим работы. Всегда полезно сделать резервные копии файлов конфигурации перед тем, как вносить в них изменения, особенно в критичных системах, таких как почтовые серверы. Надеюсь, это руководство поможет вам быстро справиться с ошибкой, связанной с Postfix в Ubuntu.