如何在LEDE中升级所有已安装的软件包?


Answers:


54

没有单个命令或参数,但是您可以轻松实现。要升级所有软件包,LEDE建议

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

人们使用AWK等其他效率较低的方法。

大量使用LEDE / OpenWRT常常是一个重要的警告opkg

由于LEDE固件将基本系统存储在压缩的只读分区中,因此对基本系统软件包的任何更新都将写入读写分区中,因此,与仅覆盖压缩基本版本中的较旧版本相比,它将使用更多的空间。系统分区。建议检查内部闪存中的可用空间以及更新基本系统软件包的空间要求。


1
另一种方法是使用Shell for循环。例如,对于`opkg list-upgradeable | cut -f 1 -d''`; 做opkg升级“ $ a”; 完成
斯科特(Scott)

5

我创建了一个小脚本opkg-upgrade,用于更好地处理升级。

它可以在github上找到:https :
//github.com/tavinus/opkg-upgrade

它将使升级变得简单:
opkg-upgrade

Curl / Wget安装说明在这里!


readme.md文件中所述,升级可能会出现问题。

可能的问题:

  • squashfs问题(ROM是只读的,因此升级会在Flash或extroot上占用额外的空间)
  • dev / trunk(测试版)问题(测试版可以在升级时轻而易举地使用)
  • 空间问题(下载和安装需要足够的可用空间)

我还应该提到从CRON升级是一个非常糟糕的主意!
我想说,即使在常规的Linux发行版上也不是盲目升级是一个好主意。
在升级过程中,可能会出错很多事情,并且由于OpenWrt通常在可以变砖的设备上运行,因此无人值守则毫无意义。

简而言之,我将永远升级的唯一情况是:

  • 如果在巨大的USB记忆棒上使用extroot
  • 如果内部Flash为32Mb或更大
  • 如果使用dev / trunk(测试版)
  • 如果在具有足够空间的ext4 FS上运行(x86 metal,VM等)

不过,我永远不会从cron升级。
在升级内部Flash(甚至是大型Flash)之前,我还会考虑20次,因为那样会使其降级得更快。

我的脚本可以选择发送包含可用更新的电子邮件报告。
因此,我建议将报告工具添加到cron中,然后人们可以在收到电子邮件后手动进行升级。这使事情变得更安全,同时还提供了修改升级的选项。

干杯!
古斯

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.