Обновление пакетов может вызвать серьёзные проблемы, включая окирпичивание вашего устройства!
Слепое (необдуманное) обновление пакетов (вручную или чере скрипт) может вызвать различные виды неполадок.
Тот факт, что существует обновленная версия определенного пакета, не означает, что его следует устанавливать или что он будет работать корректно. Перед обновлением убедитесь, что это безопасно. Избегайте обновления основных (core) пакетов!
Существует два способа управления и установки пакетов в OpenWrt: с помощью я веб-интерфейса LuCI (Система > Программное обеспечение) и через интерфейс командной строки (CLI). Оба метода вызывают один и тот же команду opkg.
Начиная с OpenWrt 19.07.0, в интерфейсе LuCI появилась вкладка «Обновления» со списком пакетов для которых имеются доступные обновления. Кнопка LuCI «Обновить...» выполняет ту же команду opkg upgrade
которая обсуждается в этой статье.
Все эти же предупреждения относятся к обновлению пакетов с помощью LuCI и CLI.
Использование команды opkg upgrade
крайне не рекомендуется. Ее следует избегать практически во всех случаях. В частности, массовое обновление пакетов с большой вероятностью приведет к серьезным проблемам, но даже обновление отдельных пакетов может привести к нестабильной работе системы. Важно подчеркнуть, что opkg upgrade
отличается от процесса sysupgrade
, который используется для обновления версий OpenWrt (как основных версий, так и обслуживающих обновлений). Команда opkg upgrade
не обновляет версию OpenWrt. Это может сделать только sysupgrade
. Эти две команды не эквивалентны!
В отличие от «больших дистрибутивов» Linux, OpenWrt оптимизирован для работы в системах с ограниченными ресурсами. Сюда входит менеджер пакетов opkg, который не имеет встроенной совместимости с ABI (Application Binary Interface, двоичный интерфейс приложения) и проверки зависимостей версий ядра. Хотя иногда проблем может не быть, гарантия отсутствует и обновление может привести к различным типам несовместимости, от незначительных до серьезных, и устранить неполадки может быть очень сложно. Кроме того, процесс обновления opkg будет занимать место на флэш-памяти. Поскольку он не перезаписывает (и не может) перезаписывать исходные пакеты (хранящиеся в ПЗУ), он должен сохранять обновленные пакеты в оверлее чтения/записи.
В подавляющем большинстве случаев любые исправления безопасности имеющие значительную важность/риск будут быстро выпущены в виде официальной стабильной версии обслуживания которую можно будет обновить с помощью системы sysupgrade
. Это рекомендуемый метод для поддержания актуальности.
Те, кто хочет быть в курсе последних событий, могут рассмотреть возможность использования моментальных выпусков, но им следует помнить о различиях между стабильными и моментальными выпусками. Или, альтернативно, создайте собственный образ с нужными обновленными пакетами, включенными в этот образ. Остальным пользователям, которые все еще хотят использовать opkg upgrade
, следует делать это только с выбранными отдельными пакетами (не выполнять массовое обновление и не обновлять вслепую), и они должны знать, что могут возникнуть проблемы, для решения проблемы может потребоваться полный сброс к настройкам по умолчанию.
Если у вас уже возникли проблемы или вы хотите «отменить» обновленные пакеты: создайте резервную копию (необязательно; можно восстановить после завершения сброса), а затем выполните сброс к настройкам по умолчанию (firstboot
).
Если вы решите обновить пакеты, особенно с помощью скрипта, то вы были предупреждены. Не жалуйтесь потом на форуме и будьте готовы самостоятельно разобраться с последствиями, поиском и устранением неполадок.