Как мне обновить все мои установленные пакеты в LEDE?

27

Мне просто интересно, что является эквивалентом

apt-get upgrade
apt upgrade
yum update

с OpenWRT или LEDE?

Эван Кэрролл
источник

Ответы:

54

Там нет ни одной команды или аргумента, но вы можете легко это сделать. Чтобы обновить все пакеты, LEDE рекомендует ,

opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade 

Есть и другие, менее эффективные способы использования AWK и тому подобное.

Важное предупреждение часто следует за широким использованием LEDE / OpenWRTopkg

Поскольку встроенное программное обеспечение LEDE хранит базовую систему в сжатом разделе, доступном только для чтения, любое обновление пакетов базовой системы будет записываться в раздел для чтения и записи и, следовательно, использовать больше места, чем если бы оно просто перезаписывало старую версию в сжатой базе системный раздел. Рекомендуется проверить доступное пространство во внутренней флэш-памяти и требования к пространству для обновлений пакетов базовой системы.

Эван Кэрролл
источник
1
Другой способ сделать это с помощью оболочки для цикла. например,> для in-opkg list-upgradedable | cut -f 1 -d '' `; сделать opkg upgrade "$ a"; готово
Скотт
5

Я создал небольшой скрипт, призванный opkg-upgradeулучшить обновление.

Он доступен на github:
https://github.com/tavinus/opkg-upgrade.

Это сделает обновление так же просто, как:
opkg-upgrade

Инструкция по установке Curl / Wget здесь!


Как уже упоминалось в файле readme.md , могут возникнуть проблемы с обновлением.

Возможные проблемы:

  • Проблема squashfs (ПЗУ доступно только для чтения, поэтому обновления занимают дополнительное место на флэш-памяти или extroot) .
  • Проблема dev / trunk (бета) (бета-версии могут быть мягко заложены при обновлении) .
  • Проблема с пространством (нужно достаточно свободного места для загрузки и установки) .

Я должен также упомянуть, что обновление с CRON - очень плохая идея!
Я бы сказал, что даже на обычном Linux-дистрибутиве слепые обновления не являются хорошей идеей.
Есть много вещей, которые могут пойти не так при обновлении, и, поскольку OpenWrt обычно работает на устройствах, которые могут быть заблокированы, имеет еще меньше смысла делать это без присмотра.

Короче говоря, единственные случаи, когда я бы КОГДА-ЛИБО обновлялись:

  • При использовании extroot на огромной флешке
  • Если внутренняя флэш-память 32 МБ или больше
  • Если НЕ использовать dev / trunk (бета)
  • Если на ext4 FS достаточно места (x86 metal, VM и др. Все)

Тем не менее, я бы никогда не обновился с cron.
Я также подумал бы 20 раз, прежде чем обновлять внутреннюю Flash (даже большую), так как это ухудшит ее быстрее.

Мой скрипт имеет возможность отправить отчет по электронной почте с доступными обновлениями.
Поэтому я бы порекомендовал добавить инструмент отчетности в cron, и тогда люди смогут обновиться вручную после получения электронной почты. Это делает вещи более безопасными, а также дает возможность пересмотреть обновления.

Ура!
Гас

Гас Невес
источник