Upgrade на OpenWRT пакети

Публикувано на

По подразбиране в Luci (WEB интерфейса на OpenWRT) няма опция за ъпгрейд на пакетите, които са инсталирани. Поради тази причина ъпгрейда може да се извърши през SSH с помощта на пакетния мениджър opkg. За съжаление opkg няма команда за автоматичен ъпгрейд на всички пакети. Трябва на opkg upgrade да се подаде списък с пакети, които да обнови.

opkg upgrade <pkgs>

За да разберем за кои пакети в момента има налични обновявания можем да използваме командата list-upgradable, която ни дава списък с наличните за обновяване пакети, техни текущи и налични версии.

opkg list-upgradable

За да можем да обновим пакетите трябва да преобразуваме този списък по подходящ начин, за да се използва от opkg upgrade. Идея за това видях в този блог, но тъй като не исках това да се случва автоматично (поне не на този етап) исках да си наравя един one liner, който лесно мога да копирам и да го изпълнявам ръчно. По-краткият вариант е:

opkg upgrade $(opkg list-upgradable | awk '{print $1}')

За съжаление на моя рутер тази команда не мина, защото свърши наличната RAM и за момент прекъсна и WiFi връзката. За това го преправих да е по-ефикасно от към RAM, като обновявам пакетите един по един.

for item in $(opkg list-upgradable | awk '{print $1}'); do opkg upgrade $item; done


Малко по-дълго е, но свърши работа.

blog comments powered by Disqus