OpenWRTにインストールされているすべてのパッケージをアップグレードするには?

OpenWRTにインストールされているすべてのパッケージをアップグレードするには?

私はただ

apt-get upgrade
apt upgrade
yum update

OpenWRTまたはLEDEを使用していますか?

答え1

いいえ一つコマンドまたはパラメータを使用すると簡単にできます。すべてのパッケージをアップグレードするには、LEDEがお勧めします。

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

人々がAWKなどを使用する効率が低い他の方法があります。

一つ重要な警告しばしばLEDE / OpenWRTの広範な使用が伴います。opkg

OpenWrtファームウェアは基本システムを圧縮された読み取り専用パーティションに保存するため、基本システム・パッケージに対するすべての更新は読み取り/書き込みパーティションに書き込まれるため、圧縮された基本システム・パーティションの以前のバージョンを上書きするよりも多くのスペースが使用されます。内蔵フラッシュメモリの空き容量と基本システムパッケージの更新に必要な容量を確認することをお勧めします。

答え2

私が知る限り、この質問に対する正しい答えは次のとおりです。適切なアップグレードと同じではありませんOpenWrtには、同等の機能を生成できるコマンドセットはありません。 OpenWrtリポジトリは、エンドユーザーパッケージを更新されたままにするために維持されていません(更新によってあるバージョンから別のバージョンに移動する必要があります)、opkgは依存関係を処理または確認しません。

一つあるOpenWRTユーザーガイドのInfobox警告このトピックを部分的に取り上げました。

通常、opkg アップグレードは使用しないことをお勧めします。これはほとんどすべての状況で避けるべきです。特に、一括アップグレードでは重大な問題が発生する可能性が高くなりますが、単一パッケージのアップグレードでも問題が発生する可能性があります。また、OpenWrtバージョン(メインリリースとメンテナンスアップグレード)をアップグレードするためのsysupgradeパスとは大きく異なることを強調する必要があります。 opkg アップグレードは OpenWrt バージョンを更新しません。 sysupgradeのみがこれを実行できます。どちらも同じではありません。

Linux の「大規模なディストリビューション」とは異なり、OpenWrt はリソースが制限されたシステムに最適化されています。これには、組み込みアプリケーションバイナリインタフェース(ABI)の互換性とカーネルバージョンの依存関係チェック機能を持たないopkgパッケージマネージャが含まれます。時には問題はないかもしれませんが、保証することはできません。アップグレードによって、マイナーなものから深刻なものまで、さまざまな種類の非互換性の問題が発生する可能性があり、トラブルシューティングが困難になる可能性があります。また、opkg アップグレードプロセスはフラッシュストレージを消費します。元のパッケージ(ROMに保存されている)を上書きせず、上書きできないため、アップグレードされたパッケージをr / w上書きに保存する必要があります。

次のように要約されます。

盲目的にパッケージをアップグレードすると(手動でまたはスクリプトを介して)、あらゆる種類の問題が発生する可能性があります。

特定のパッケージの最新バージョンがあるからといって、そのパッケージをインストールする必要があるか、正しく機能するわけではありません。アップグレードを実行する前に、自分に通知してアップグレードするのが安全であることを確認してください。

ついに

OpenWrtでパッケージを管理/インストールするには、LuCI Webインターフェースソフトウェアメニュー(システム>ソフトウェア)を使用する方法とコマンドラインインターフェース(CLI)を使用する2つの方法があります。どちらの方法も同じCLI opkg実行可能ファイルを呼び出し、OpenWrt 19.07.0以降、LuCIインターフェイスには、利用可能なアップグレードを含むパッケージを一覧表示する[更新]タブがあります。 LuCIアップグレード...ボタンは、この記事で説明したのと同じopkgアップグレードコマンドを実行します。 LuCIとCLIを使用してパッケージをアップグレードすると、同じ警告が適用されます。

完全な情報ボックスは読む価値があります。上部に表示されますユーザーガイドのこのセクションでは、利用可能なパッケージのアップグレードを表示する方法について説明します。

私の元の投稿の残りの部分は下に残ります。

OpenWrtフォーラムで引用:

OpenWrtの経験が多い人は、opkgにアップグレードすることが問題を引き起こす可能性があるため(特に理由がない限り)悪い考えであることを知っています。しかし、他の多くのユーザーはこれを知りません。彼らはこれが他のLinuxインストールと同じであり、ほとんどの場合、アップグレードが機能するはずだと思います。

そして

OPKGを使用してアップグレードしないでください!

心からそうしないでください。一度。自分が何をしているのかわからない場合は、それを行う必要がある可能性のある理由が必要です。ルーターがスムーズに機能しない場合は、その結果に直面する必要があります。フラッシュスペースを消費しますが、より重要なのは、カーネルの不一致やその他の破損した依存関係がある可能性があり、OpenWrtであらゆる種類の問題を引き起こす可能性があります。そのうちのいくつかは単なる迷惑なレベルであり、いくつかは非常に深刻なことができます。など。

そして

絶対 opkg を使用してアップグレードしないでください。この方法は深刻な問題を引き起こす可能性があり、実際にバージョンをアップグレードしません。一部の人々はopkgアップグレードをうまく使用したと言うでしょう。しかし、そのようなすべての人には、プロセス全体で発生した問題(マイナーまたは重大な問題)を経験した人が多くいます。ただしないでください。

簡単に言うと、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の専門家ではありません。 「update wrt」のウェブ検索結果が依然として上位にあるため、この投稿にアクセスしました。このスレッドを読んだ後、上記のリンクされたスレッドを含むOpenWrtフォーラムに進みました。私は、私よりもそのトピックについてもっと知っている人が書いたかもしれない情報を見つけて、エンドユーザーが将来の問題を避けるのを助けるよう努めています。

OpenWrtパッケージを最新の状態に保つためにさまざまなコマンドを使用し続けていることを望む人は、時間がかかり、これが提供されたツールを使用する合理的な方法であるかどうかOpenWrtチームと一緒にチェックしてください。私は間違っていることを証明したいと思います。

答え3

opkg-upgradeより良い方法でアップグレードを処理するために呼び出される小さなスクリプトを作成しました。

githubで見つけることができます:
https://github.com/tavinus/opkg-upgrade

アップグレードが非常に簡単になります。
opkg-upgrade

Curl/Wgetのインストール手順はここにあります!


上記のように読む.mdファイルがありますが、アップグレードに問題がある可能性があります。

発生する可能性のある問題:

  • カボチャの問題(ROMは読み取り専用なので、アップグレードするにはフラッシュまたはextrootに追加のスペースが必要です)
  • 開発/トランク(ベータ)の問題(ベータ版はアップグレード中にソフトブリックになることがあります)
  • スペースの問題(ダウンロードとインストールには十分な空き容量が必要です)

また、CRONからアップグレードすることは非常に悪い考えであることに言及したいと思います!
一般的なLinuxディストリビューションでも盲目的にアップグレードするのは良い考えではないと言いたいと思います。
アップグレード中に間違っている可能性がたくさんあり、OpenWrtはレンガになる可能性があるデバイスで実行されることが多いため、無人で行うことははるかに少ないです。

簡単に言えば、アップグレードできる唯一の状況は次のとおりです。

  • 巨大なUSBスティックでextrootを使用している場合
  • 内蔵フラッシュメモリが32Mb以上の場合
  • もしいいえ開発/トランクの使用(ベータ)
  • 十分なスペースがあるext4 FSで実行している場合(x86メタル、VMなど)

それにもかかわらず、私はcronからアップグレードしません。
また、内部フラッシュをアップグレードする前に(大きなフラッシュでも)パフォーマンスが速く低下するため、20回を検討します。

私のスクリプトには、利用可能なアップデートを含む電子メールレポートを送信するオプションがあります。
したがって、cronにレポートツールを追加すると、人々が電子メールを受信した後に手動でアップグレードできることが示唆されます。これにより、アップグレード修正オプションが提供され、セキュリティがさらに強化されます。


乾杯!

答え4

このようなエラーが発生した場合

しばらくして、各ファイルを個別にアップグレードしてみてください。

opkg list-upgradable | cut -f 1 -d ' ' | while IFS='$\n' read -r line; do opkg install $line ; done

関連情報