apt-getと比較して適切な出力をパイプすることがセキュリティに与える影響は何ですか?

apt-getと比較して適切な出力をパイプすることがセキュリティに与える影響は何ですか?

毎回インストールするために手動で端末に入る必要がないように、すべてのpython3パッケージをインストールしようとしています。しかし、apt は依存関係の問題のために継続を拒否します。

sonic@boomboom:~$ sudo apt install python3*
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'python3-trufont' for glob 'python3*'
(Long list of packages)
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-chargebee : Conflicts: python3-chargebee2 but 2.7.3-1 is to be installed
 (Long list of packages)
E: Unable to correct problems, you have held broken packages.

したがって、私は出力を解析し、apt私のglobと一致するすべてのパッケージ(削除可能なパッケージを除く)を自動的にインストールする短いスクリプトを書くことにしました。まず、grep不要なパッケージだけをフィルタリングしてみました。

sonic@boomboom:~$ sudo apt install python3* | grep 'Conflicts:'

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

 python3-chargebee : Conflicts: python3-chargebee2 but 2.7.3-1 is to be installed
 python3-chargebee2 : Conflicts: python3-chargebee but 1.6.6-1 is to be installed
 (Long list of packages)
E: Unable to correct problems, you have held broken packages.

Grepは機能しますが、警告メッセージが表示され、興味深いことにGrepを使用しても表示されませんapt-get

sonic@boomboom:~$ sudo apt install python3* | grep 'Conflicts:'
 python3-chargebee : Conflicts: python3-chargebee2 but 2.7.3-1 is to be installed
 python3-chargebee2 : Conflicts: python3-chargebee but 1.6.6-1 is to be installed
 (Long list of packages)
E: Unable to correct problems, you have held broken packages.

警告メッセージを除いて、出力はまったく同じです。apt開発者に警告を追加させるパイプラインのセキュリティ影響は何ですか?なぜapt-get同じ警告をしないのですか?私はこれら2つのコマンドがほぼ同じだと思います。

ベストアンサー1

出力を解析しないとapt安全に使用できます。警告を発行する主な理由は次のとおりです。apt対話型使用のためのもの:

aptパッケージ管理システム用の高度なコマンドラインインタフェースを提供します。これはエンドユーザーインターフェースとして設計されていますapt-get(8)apt-cache(8)

出力が端末でない場合は、対話的に使用されていないと仮定して警告を表示します。あなたの場合には危険はありません。

おすすめ記事