Маршрутизатор Beeline SmartBox TURBO+ и прошивка OpenWrt. Никогда не используйте команду OPKG UPGRADE.
В отличие от «больших дистрибутивов» Linux, OpenWRT оптимизирован для работы в системах с ограниченными ресурсами. Это накладывает ограничения на работу менеджера пакетов opkg, который не имеет возможности проверить полную совместимость пакетов и провести проверку зависимостей версий ядра.
Именно поэтому использование opkg upgrade очень сильно не рекомендуется. Этого следует избегать практически при любых обстоятельствах. Даже на стабильных релизах.
На официальном сайте OpenWRT опубликовано предупреждение — https://openwrt.org/meta/infobox/upgrade_packages_warning, в котором сказано о том, что использовать команду opkg upgrade
крайне рискованно.
Далее вольный перевод этой статьи.
Обновление пакетов может вызвать серьезные проблемы, в том числе «мягкую» блокировку вашего устройства!
Слепое обновление пакетов (вручную или с помощью скрипта) может привести вас ко всевозможным неприятностям.
Если существует обновленная версия какого-то пакета, то это вовсе не означает, что он должен быть установлен или то, что он будет функционировать должным образом. Перед выполнением каких-либо обновлений всерьез подумайте, чтобы определить, безопасно ли это обновление.
Всегда избегайте обновления основных пакетов.
Существует два способа управлять пакетами, то есть устанавливать их в OpenWRT: с помощью программного меню веб-интерфейса LuCI (Система > Программное обеспечение) и через интерфейс командной строки (CLI). Оба метода вызывают один и тот же исполняемый файл CLI opkg, и, начиная с OpenWRT 19.07.0, в интерфейсе LuCI теперь есть вкладка «Обновления» со списком пакетов, для которых доступны обновления. Кнопка LuCI Upgrade… выполняет ту же команду обновления opkg, которая обсуждается в этой статье. Те же предупреждения применимы к обновлению пакетов с использованием LuCI и CLI.
Вообще говоря, использование opkg upgrade очень сильно не рекомендуется. Этого следует избегать практически при любых обстоятельствах. В частности, массовое обновление, скорее всего, приведет к серьезным проблемам, но даже обновление отдельных пакетов может вызвать проблемы. Также важно подчеркнуть, что это значительно отличается от пути sysupgrade для обновления выпусков OpenWRT (основных версий, а также обновлений для обслуживания). обновление opkg не приведет к обновлению версии OpenWRT. Только sysupgrade может это сделать. Эти два понятия не эквивалентны.
В отличие от «больших дистрибутивов» Linux, OpenWRT оптимизирован для работы в системах с ограниченными ресурсами. Это включает в себя менеджер пакетов opkg, который не имеет встроенной совместимости с ABI (двоичным интерфейсом приложения) и проверки зависимостей версий ядра. Хотя иногда проблем может и не быть, гарантии нет, и обновление может привести к различным типам несовместимостей, которые могут варьироваться от незначительных до серьезных, и устранить их может быть очень сложно. Кроме того, процесс обновления opkg потребует много места на флэш-памяти. Поскольку он не перезаписывает (и не может) оригинал (хранящийся в ПЗУ), он должен сохранять обновленные пакеты в оверлее r/w.
В подавляющем большинстве случаев любые исправления безопасности, представляющие значительную важность/риск, будут быстро выпущены в официальном стабильном сервисном выпуске для обновления с помощью системы sysupgrade. Это рекомендуемый метод для поддержания актуальности.
Те, кто хочет быть на переднем крае, могут рассмотреть возможность использования выпусков snapshot, но следует помнить о различиях между stable и snapshot. Или, в качестве альтернативы, создайте пользовательский образ с желаемыми обновленными пакетами, включенными в этот образ. Остальные пользователи, которые все еще хотят использовать opkg upgrade, должны делать это только с выбранными отдельными пакетами (не обновлять массово и не обновлять вслепую), и они должны знать, что могут возникнуть проблемы, для устранения которых может потребоваться полный сброс к настройкам по умолчанию.
Если у вас уже возникли проблемы или вы хотите «отменить» обновленные пакеты: создайте резервную копию (необязательно; может быть восстановлена после завершения сброса), а затем выполните сброс к настройкам по умолчанию (первая загрузка).
Если вы все-таки решите обновить пакеты, особенно с помощью скрипта, вы были предупреждены. Не жалуйтесь на форуме и будьте готовы самостоятельно разбираться с последствиями, устранять неполадки и разрешать проблемы.
Вывод: никогда не используйте команду opkg upgrade
на маршрутизаторе с прошивкой OpenWRT.
Постскриптум
Абсолютное большинство инструкций в интернете по OpenWRT в той или иной степени являются вольным переводом и пересказом официальной документации. Эта статья может вызвать такое же впечатление.
Я при написании данной статьи так же опирался на официальную документацию и вносил правки в файлы конфигурации применительно к моему маршрутизатору Beeline SmartBox TURBO+ с прошивкой OpenWRT 23.05.0-rc2.
Благодарности
При написании статьи были использованы следующие источники: