Como atualizo todos os meus pacotes instalados no LEDE?

27

Eu só estou querendo saber o que é o equivalente de

apt-get upgrade
apt upgrade
yum update

com OpenWRT ou LEDE?

Evan Carroll
fonte

Respostas:

54

Não existe um único comando ou argumento, mas você pode fazê-lo facilmente. Para atualizar todos os pacotes, a LEDE recomenda ,

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

Existem outras maneiras menos eficientes de as pessoas usarem o AWK e tal.

Uma advertência importante geralmente ocorre com o uso extensivo de LEDE / OpenWRTopkg

Como o firmware LEDE armazena o sistema base em uma partição somente leitura compactada, qualquer atualização nos pacotes do sistema base será gravada na partição de leitura e gravação e, portanto, usa mais espaço do que usaria se estivesse apenas substituindo a versão mais antiga na base compactada partição do sistema. É recomendável verificar o espaço disponível na memória flash interna e os requisitos de espaço para atualizações dos pacotes do sistema básico.

Evan Carroll
fonte
11
Outra maneira de fazer isso é com um shell for loop. por exemplo> para um em `opkg list-upgradeable | cut -f 1 -d ''; faça o upgrade do opkg "$ a"; terminado
Scott
5

Eu criei um pequeno script chamado opkg-upgradepara lidar com a atualização de uma maneira melhor.

Está disponível no github:
https://github.com/tavinus/opkg-upgrade

Isso tornará a atualização tão fácil quanto:
opkg-upgrade

Instruções de instalação do Curl / Wget aqui!


Conforme mencionado no arquivo readme.md , pode haver problemas com a atualização.

Possíveis problemas:

  • O problema do squashfs (a ROM é somente leitura, portanto, as atualizações ocupam espaço extra no flash ou na inicialização) .
  • O problema do desenvolvedor / tronco (beta) (as versões beta podem ser incorporadas em atualizações) .
  • O problema de espaço (precisa de espaço livre suficiente para os downloads e instalações) .

Devo também mencionar que atualizar do CRON é uma péssima ideia!
Eu diria que nem mesmo em uma distribuição cega regular de atualizações do Linux são uma boa idéia.
Há muitas coisas que podem dar errado nas atualizações e, como o OpenWrt geralmente é executado em dispositivos que podem ser emparedados, faz ainda menos sentido fazê-lo sem supervisão.

Em resumo, os únicos casos em que eu NUNCA atualizaria são:

  • Se estiver usando extroot em um enorme dispositivo USB
  • Se o Flash interno tiver 32 Mb ou mais
  • Se NÃO estiver usando dev / trunk (beta)
  • Se estiver executando no ext4 FS com muito espaço (metal x86, VM, etc.)

Ainda assim, eu nunca atualizaria a partir do cron.
Eu também pensaria 20 vezes antes de atualizar o Flash interno (mesmo os grandes), pois isso o degradaria mais rapidamente.

Meu script tem a opção de enviar um relatório de email com as atualizações disponíveis.
Por isso, recomendo adicionar a ferramenta de relatórios ao cron e, em seguida, as pessoas podem atualizar manualmente depois de receber o email. Isso torna as coisas mais seguras, além de oferecer a opção de revisar as atualizações.

Felicidades!
Gus

Gus Neves
fonte