Вопрос или проблема
Я хотел бы узнать, сталкивался ли кто-нибудь с этим. Я запускаю серверную версию Ubuntu 22.04.
После выполнения apt, я вижу сообщение с предложением выполнить apt autoremove. (Я это сделал)
Я также получил сообщение об обновлении ядра и перезагрузке (я перезагрузился)
Сеть так и не заработала.
Мне не потребовалось много времени, чтобы понять, что пакеты iproute2 и netplan.io отсутствуют. (обе команды ip и netplan отсутствовали)
Все интерфейсы (кроме lo) исчезли
Без IP и Netplan у меня не было сетевого соединения, поэтому я зашел на https://packages.ubuntu.com/jammy чтобы скачать пакеты в надежде восстановить работу. Чтобы получить iproute2_5.15.0-1ubuntu2_amd64.deb, мне также нужно было установить:
- libbpf0_0.5.0-1_amd64.deb
- libcap2-bin_2.44-1build3_amd64.deb
- libmnl0_1.0.4-3build2_amd64.deb
- libxtables12_1.8.7-1ubuntu5_amd64.deb
Затем, чтобы установить netplan.io_0.104-0ubuntu2_amd64.deb, мне потребовались его зависимости:
- libc6_2.35-0ubuntu3_amd64.deb
- libglib2.0-0_2.72.1-1_amd64.deb
- libnetplan0_0.104-0ubuntu2_amd64.deb
- python3_3.10.4-0ubuntu2_amd64.deb
- python3-netifaces_0.11.0-1build2_amd64.deb
- python3-yaml_5.4.1-1ubuntu1_amd64.deb
Это действительно решило проблему с сетью, и я смог запустить “apt –fix-broken install” чтобы исправить все остальное, что произошло.
Кто-нибудь слышал об этом? Я давно использую серверы Ubuntu и никогда не сталкивался с таким раньше.
Обычно существует хотя бы один установленный программный пакет, называемый метапакетом, который сам по себе не имеет или имеет мало функциональности, но определяет зависимости от всего, что вы, вероятно, не хотите автоматически удалять.
Один из способов, как вы могли оказаться в описанной ситуации, — это удалить пакет ubuntu-minimal
. Это редко рекомендуется, но возможно, если у вас действительно есть веская причина отклониться от системы, которую Canonical обозначила как минимальную дистрибуцию. Установите ubuntu-minimal
(возможно, также ubuntu-server
) и внимательно просмотрите другие зависимости, которые теперь (пере)устанавливаются в результате.
Другой известный мне способ — это сбой во время обновлений, но в этом случае скрипты, используемые для управления этими обновлениями, должны — если их не прервет сбой питания или нехватка дискового пространства — всегда четко фиксировать и выводить свой прогресс и предлагать потенциальные решения, если что-то идет не так.
Ответ или решение
Когда вы сталкиваетесь с исчезновением netplan на Ubuntu 22.04 Jammy, это может стать серьёзной проблемой, особенно если это повлияло на работу сетевых интерфейсов. Рассмотрим возможные причины возникновения этой ситуации и как можно её избежать и устранить.
Теория
В базе дистрибутивов Ubuntu сетевые настройки обрабатываются через утилиту netplan
, которая управляет конфигурациями сетевых интерфейсов. Другое важное программное обеспечение – это пакет iproute2
, предоставляющий утилиты для управления сетями на основе API ядра Linux.
Возможные причины исчезновения пакетов:
-
Автоматическое удаление зависимостей: Некоторые пользователи могут столкнуться с проблемой, когда key-пакеты, такие как
netplan.io
илиiproute2
, внезапно исчезают после выполнения командыapt autoremove
. Эта команда удаляет пакеты, которые система посчитала ненужными. Однако иногда возможно ложное определение зависимостей. -
Удаление мета-пакета
ubuntu-minimal
: Удаление этого пакета может привести к тому, что уйдут важные компоненты системы. Он обеспечивает минимальные и критически важные зависимости для системы и должен быть установлен в любой конфигурации Ubuntu. -
Ошибки обновления или конфликты версий: Хотя системы обновления Ubuntu тестируются, всегда есть вероятность возникновения конфликтов версий или проблем при переходе к новому ядру.
-
Неполадка на стороне пользователя: Экстренные ситуации, такие как внезапное прерывание системы (в результате отключения питания или нехватки дискового пространства), могут повлиять на целостность системы и привести к потере некоторых бинарных файлов.
Пример
В приведенном выше примере пользователь столкнулся с исчезновением ключевых сетевых утилит после регулярного обновления и запуска apt autoremove
, что усложнило подключение к сети из-за отсутствия инструментов для управления сетевыми интерфейсами. Для решения проблемы пользователь загрузил и установил необходимые .deb-пакеты зависимостей и восстанавливал netplan
и iproute2
вручную. Этот процесс потребовал значительных усилий и знаний о пакетной системе управления deb.
Применение
1. Восстановление системы:
-
Установка отсутствующих пакетов: Если вы оказались в подобной ситуации, где
iproute2
иnetplan.io
удалены, необходимо загрузить эти пакеты и их зависимости из надёжного источника, как вы и сделали. Убедитесь, что все зависимости установлены в нужном порядке. -
Использование
apt --fix-broken install
: После установки недостающих пакетов, выполнение этой команды поможет системе "залатать дыры" в установленных пакетах, устранив оставшиеся несоответствия в зависимостях.
2. Предотвращение ситуации:
-
Использование мета-пакетов: Убедитесь, что ключевые пакеты, такие как
ubuntu-minimal
иubuntu-server
, установлены на вашей системе. Это защитит важные компоненты от случайного удаления. Чтобы восстановить полный набор таких пакетов, можно выполнить:sudo apt install ubuntu-minimal ubuntu-server
-
Внимательно относитесь к рекомендациям системы: Перед тем как запускать
apt autoremove
, всегда проверяйте список пакетов, предлагаемых к удалению, чтобы случайно не удалить критически важные компоненты.
Этот инцидент демонстрирует, как автоматические системы управления пакетами могут серьёзно повлиять на функциональность вашего сервера. Важно убеждаться, что выполняемые команды не навредят основам системы, и быть готовым к восстановлению пакетов в случае необходимости. Постоянный мониторинг и понимание зависимости между различными компонентами системы помогут предотвратить такие ситуации.