web-dev-qa-db-ja.com

LEDEにインストールされているすべてのパッケージをアップグレードするにはどうすればよいですか?

に相当するものは何だろうと思っています

apt-get upgrade
apt upgrade
yum update

openWRTまたはLEDEで?

30
Evan Carroll

singleコマンドまたは引数はありませんが、簡単に実行できます。 すべてのパッケージをアップグレードするには、LEDEが推奨

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

AWKなどを使用する効率の悪い方法は他にもあります。

重要な注意事項は、LEDE/OpenWRTのopkg を頻繁に使用する場合に続くことがよくあります

LEDEファームウェアはベースシステムを圧縮された読み取り専用パーティションに保存するため、ベースシステムパッケージへの更新は読み取り/書き込みパーティションに書き込まれるため、以前よりも多くのスペースを使用します圧縮されたベースシステムパーティションの古いバージョンを上書きするだけです。内部フラッシュメモリの使用可能なスペースと、ベースシステムパッケージの更新に必要なスペースを確認することをお勧めします。

64
Evan Carroll

アップグレードをより適切に処理するために、opkg-upgradeという小さなスクリプトを作成しました。

Githubから入手できます。
https://github.com/tavinus/opkg-upgrade

次のように簡単にアップグレードできます。
opkg-upgrade

Curl/Wgetのインストール手順はこちら!


readme.md ファイルで述べたように、アップグレードに問題があるかもしれません。

考えられる問題:

  • Squashfsの問題(ROMは読み取り専用なので、アップグレードではフラッシュまたはextrootで余分なスペースが必要になります)
  • Dev/trunk(beta)の問題(ベータ版はアップグレード時にソフトブリックできる)
  • スペースの問題(ダウンロードとインストールに十分な空きスペースが必要です)

また、CRONからのアップグレードは非常に悪い考えです
通常のLinuxディストリビューションブラインドアップグレードであっても、良いアイデアではないと思います。
アップグレードで問題が発生する可能性のある多くの問題があり、OpenWrtは通常、ブリック可能なデバイスで実行されるため、無人で行うことはさらに意味がありません。

要するに、私がアップグレードする唯一のケースは:

  • 巨大なUSBスティックでextrootを使用する場合
  • 内部フラッシュが32Mb以上の場合
  • If[〜#〜]ない[〜#〜]dev/trunk(beta)を使用
  • Ext4で実行する場合FS十分なスペース(x86メタル、VMなどすべて)

それでも、cronからアップグレードすることはありません。
また、内蔵フラッシュをアップグレードする前に(大きなフラッシュであっても)20回考えます。

私のスクリプトには、利用可能な更新を含む電子メールレポートを送信するオプションがあります。
それで、レポートツールをcronに追加することをお勧めします。そうすれば、電子メールを受信した後に手動でアップグレードできます。これにより、アップグレードを改訂するオプションを提供しながら、物事をより安全にします。

乾杯!
ガス

6
Gus Neves

OpenWrt 19.07以降、opkg upgrade [pkgname]を実行すると、このエラーがスローされる場合があります。

Collected errors:
 * pkg_hash_add_from_file: Failed to open /var/opkg-lists/openwrt_routing: Out of memory.

回避策は、代わりにopkg installを使用することです。これは、luci-app-opkgがパッケージをアップグレードする方法と同じです。

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