シェルスクリプトでaptまたはapt-getを使用する必要がありますか?

シェルスクリプトでaptまたはapt-getを使用する必要がありますか?

aptこれはLinuxディストリビューションに推奨されるコマンドです。パッケージ管理に必要なオプションを提供します。オプションは少ないですが、覚えやすく使いやすいです。

引用したとおりフォックスウェブサイト

apt-getのより多くの機能を活用する特定のタスクを実行したくない限り、apt-getに固執する理由はありません。

  1. aptapt-get および apt-cache コマンドのサブセットで、パッケージ管理に必要なコマンドを提供します。
  2. apt-getは使用されなくなりましたが、通常のユーザーはaptを頻繁に使用する必要があります。

シェルスクリプトで使用するとこのエラーが発生しapt、使用するとこのエラーは発生しませんapt-get

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

私の質問は次のとおりです

  1. apt信頼性の高いCLIインタフェースがない理由は何ですか?
  2. apt慎重にまたは安全に使用する方法は?
  3. このエラーメッセージを無効にするにはどうすればよいですか?

答え1

apt推奨されるコマンドですインタラクティブ管理者が使用し、シェルスクリプトでは使用できません。

この問題はほとんど解決されましたaptマンページ:

これ適度な(8)コマンドラインはエンドユーザーツールとして設計されており、バージョン間で動作が変わる可能性があります。以前のバージョンとの互換性を維持しようとしましたが、変更が対話型の使用に役立つ場合は、これを保証することはできません。

すべての機能適度な(8)以下の専用APTツールで利用可能適切 - ゲット(8)そして適切なキャッシュ(8)しかも。適度な(8)一部のオプションのデフォルト値を変更するだけです(参照apt.conf(5)特にバイナリ範囲)。したがって、可能な限り以前のバージョンとの互換性を維持するため、スクリプトでこれらのコマンドを使用することをお勧めします(一部の追加オプションが有効になる場合があります)。

したがって:

  1. apt有益と見なされる主な変更を可能にする信頼性の高いCLIインタフェースはありません。

  2. あなたはできません。ツールは明らかにそれのために設計されていません。

  3. スクリプトで使用するapt-getか、エラー メッセージを防止します。apt-cache

答え2

apt-getすでに存在しており、スクリプトインターフェイスを変更する理由は何もありませんaptでした。いいえ完全な以前のバージョンとの互換性に注意する必要があります。したがって、apt-get将来のインターフェイスの変更を防ぐために、スクリプトでのみ使用する必要があります。

OTOHはapt「親切に」設計されているのでそれが言う内容に注意を払う限り安全である。

私は推測しています(しかしまだテストしていません)。aptログインシェルの直接の子として実行すると、対話的に実行されていると思われる可能性があるため、次のことを実行してみてくださいsh -l -c "apt $ARGS"

関連情報