Eva*_*oll 53 openwrt upgrade opkg lede
我只是想知道什么是等价的
apt-get upgrade
apt upgrade
yum update
Run Code Online (Sandbox Code Playgroud)
用 OpenWRT 还是 LEDE?
Eva*_*oll 104
没有单一的命令或参数,但您可以轻松完成。要升级所有包,LEDE 建议,
opkg list-upgradable | cut -f 1 -d ' ' | xargs -r opkg upgrade
Run Code Online (Sandbox Code Playgroud)
人们使用 AWK 等还有其他效率较低的方法。
一个重要的警告通常伴随着 LEDE / OpenWRT 的广泛使用opkg
由于 OpenWrt 固件将基础系统存储在一个压缩的只读分区中,因此对基础系统包的任何更新都将写入读写分区,因此比仅覆盖压缩基础中的旧版本使用更多的空间系统分区。建议检查内部闪存中的可用空间以及基本系统包更新的空间要求。
J. *_*eis 16
据我所知,这个问题的正确答案是,在 OpenWrt 上没有apt upgrade 的等效项,也没有可以创建等效功能的命令集。维护 OpenWrt 存储库的目的不是为了保持最终用户的包更新(您应该通过刷机从一个版本移动到另一个版本)并且 opkg 不处理甚至检查依赖项。
OpenWRT 用户指南有一个信息框警告,该警告部分解决了这个主题:
一般来说,非常不鼓励使用 opkg upgrade。几乎在所有情况下都应该避免这种情况。特别是批量升级极有可能导致大问题,但即使升级单个包也可能导致问题。还需要强调的是,这与升级 OpenWrt 版本(主要版本以及维护升级)的 sysupgrade 路径明显不同。opkg upgrade 不会更新 OpenWrt 版本。只有 sysupgrade 可以做到这一点。两者并不等价。
与 Linux 的“大发行版”不同,OpenWrt 经过优化以在资源有限的系统上运行。这包括 opkg 包管理器,它没有内置的 ABI(应用程序二进制接口)兼容性和内核版本依赖性验证。虽然有时可能没有问题,但无法保证,升级可能会导致从轻微到严重的各种类型的不兼容,并且可能很难排除故障。此外,opkg 升级过程会消耗闪存空间。由于它不会(也不能)覆盖原始(存储在 ROM 中),因此它必须将升级后的包存储在 r/w 覆盖中。
它总结为:
盲目升级软件包(手动或通过脚本)可能会导致您遇到各种麻烦。
仅仅因为给定软件包的更新版本并不意味着它应该被安装或它会正常运行。在进行任何升级之前通知自己,以确定升级是否安全。
最后
在 OpenWrt 中有两种管理/安装软件包的方法:使用 LuCI 网络界面软件菜单(系统 > 软件),以及通过命令行界面(CLI)。这两种方法都调用相同的 CLI opkg 可执行文件,从 OpenWrt 19.07.0 开始,LuCI 界面现在有一个“更新”选项卡,其中列出了具有可用升级的软件包列表。LuCI 升级...按钮执行本文中讨论的相同 opkg 升级命令。相同的警告适用于使用 LuCI 和 CLI 升级包。
整个信息框都值得一读。它出现在有关显示可用软件包升级的用户指南本部分的顶部。
我的原始帖子的剩余内容保留在下面
来自 OpenWrt 论坛的引用:
我们这些对 OpenWrt 有更多经验的人都知道,使用 opkg upgrade 是一个坏主意(除非有非常具体的原因),因为事情可能会破裂。但是许多其他用户不知道——他们认为它就像任何其他 linux 安装一样,并且升级应该在大多数时间有效。
和
不要使用 OPKG 升级!
说真的,不要。曾经。除非您知道自己在做什么,否则有充分的理由去做,并且愿意承担如果您在路由器运行不佳时弄乱了路由器的后果。它将消耗闪存空间,但更重要的是,可能存在内核不匹配和其他损坏的依赖关系,这可能会导致 OpenWrt 出现各种问题——其中一些只是令人讨厌的级别,其他可能非常严重,需要重新刷机等等.
和
永远不要使用 opkg upgrade - 这种方法可能会给您带来重大问题,并且实际上不会升级版本。有些人会说他们已经成功地使用了 opkg upgrade,但是对于这些人中的每一个人来说,还有更多的人遇到了完全由该过程引起的问题——有些是小问题,有些是大问题。只是不要这样做
简而言之,LUCI 中没有包含用于执行此操作的 GUI 选项是有原因的。此处建议用于其他答案的方法将实现类似于 apt/apt-get 的效果,但底层工具的工作方式与 apt 或 yum 不同。可能的问题超出了提到的存储空间不足的可能性(这很糟糕,但如果小心,可以避免)。
参考资料:https :
//forum.openwrt.org/t/okpg-upgrade-safeguards/30326
https://forum.openwrt.org/t/opkg-upgrade-vs-flashing-sysupgrade/58906
https://forum。 openwrt.org/t/sysupgrade-instead-of-opkg-upgrade/32897/4
我不是 OpenWRT 专家,我来到这个线程是因为它仍然是“更新 wrt”的顶级网络搜索结果。阅读完这个帖子后,我继续访问 OpenWrt 论坛,包括上面链接的帖子。我只是试图通过传递我发现的信息来帮助最终用户避免未来的问题,这些信息大概是由比我更熟悉/知识渊博的人编写的。
那些希望继续提倡使用各种命令来使 OpenWrt 上的软件包保持最新的人,请考虑花时间与 OpenWrt 团队验证这是使用所提供工具的合理方式。我很想被证明是错误的。
我创建了一个小脚本opkg-upgrade
,用于以更好的方式处理升级。
它在 github 上可用:https :
//github.com/tavinus/opkg-upgrade
它将使升级变得如此简单:
opkg-upgrade
正如readme.md文件中提到的,升级可能会出现问题。
可能的问题:
我还应该提到,从 CRON 升级是一个非常糟糕的主意!
我想说,即使在常规的 Linux 发行版上,盲目升级也不是一个好主意。
升级时有很多事情可能会出错,而且由于 OpenWrt 通常在可以变砖的设备上运行,所以在无人看管的情况下进行更没有意义。
简而言之,我永远升级的唯一情况是:
不过,我永远不会从 cron 升级。
在升级内部闪存(即使是大闪存)之前,我也会考虑 20 次,因为那样会更快地降低它的性能。
我的脚本可以选择发送包含可用更新的电子邮件报告。
所以我建议在cron中添加报表工具,然后人们可以在收到电子邮件后手动升级。这使事情变得更安全,同时还提供了修改升级的选项。
干杯!
格斯
小智 5
从 OpenWrt 19.07 开始,执行opkg upgrade [pkgname]
可能会抛出此错误。
Collected errors:
* pkg_hash_add_from_file: Failed to open /var/opkg-lists/openwrt_routing: Out of memory.
Run Code Online (Sandbox Code Playgroud)
解决方法是使用opkg install
替代方法,这与升级软件包的方式相同luci-app-opkg
。
opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg install
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
142976 次 |
最近记录: |