パッケージがプリインストールされているか、ユーザーによってインストールされたかを判断できるスクリプトを作成しようとしています。
また、パッケージ「X」の依存関係が以下にあることを知る方法はありますか?
答え1
実際に知ることはできないレベルですrpm
。使用するパッケージ マネージャーによっては、そこに何らかの情報が保存されている可能性があります。
これは、ユーザーが でインストール コマンドを実行した場合にのみ機能することに注意してくださいsudo
。ユーザーが root になった場合、誰が実行したかはわかりません。
おいしい
yum history
トランザクションのリストと、コマンドを開始したユーザーが表示されます。
ダウン
dnf history
トランザクションのリストが表示されますが、デフォルトではユーザーは表示されません。ただし、次のコマンドを実行できます。
dnf history info <ID>
そして、コマンドを起動したユーザーが表示されます
ジッパー
私の知る限り、これを知る方法はありません。
答え2
タグが不明瞭なので、どのパッケージ マネージャーを使用しているかはわかりません。ただし、arch-linux タグを使用しているので、pacman について回答します。
最初の質問は難しいですね。私の知る限りでは不可能で、インストール方法に大きく依存します。Linux にはさまざまなディストリビューション、デスクトップ環境、インストーラー オプションなどがあるため、標準的な Linux インストール方法というものはありません。ただし、1 つの方法としては、セットアップでインストールされているパッケージ グループを調べ、次のコマンドを使用してその他のパッケージ (ユーザーがインストールする可能性が高いもの) を取得することです。comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)
ここで、base は確実にプリインストールされているグループの 1 つです。
質問の2番目の部分について:パッケージに関する情報を取得するにはpacman -Si <yourpackage>
、以下を使用します。依存関係のみの出力を取得したい場合は、以下を参照してください。このスレッド
答え3
ディストリビューションのウェブサイトで、インストール時にディストリビューションに含まれているパッケージを確認してください。これらはプリインストールされています。その他はすべてインストール後に追加されたものです。