パッケージがプリインストールされているのか、ユーザーがインストールしたのかを知るスクリプトを作成しようとしています。
以下がパッケージ「X」の依存関係であることを知る方法はありますか?
答え1
rpm
レベルでは実際にはわかりません。使用するパッケージマネージャによっては、一部の情報が保存される場合があります。
これは、ユーザーがrun installコマンドを使用している場合にのみ機能しますsudo
。もし彼がルートになれば、誰がそのようなことをしたのかは決して分からないでしょう。
ヤム
yum history
トランザクションのリストとコマンドを開始したユーザーを提供します。
地下刑務所
dnf history
取引リストを提供しますが、デフォルトではユーザーはリストしません。しかし、以下を実行できます。
dnf history info <ID>
これにより、コマンドを開始したユーザーが表示されます。
チップ
これを知る方法はありません。
答え2
タグが不明で、どのパッケージマネージャを使用しているかわかりません。しかし、あなたはarch-linuxタグを使用したので、私はpacmanを使って答えます。
まあ、最初の質問は難しい質問です。私が知っている限り、それは実際には可能ではなく、インストールによって大きく異なります。さまざまなディストリビューション、デスクトップ環境、インストーラオプションがあるため、1つの標準Linuxインストールはありません。ただし、1 つの方法は、設定とともにインストールされているパッケージ グループがあるかどうかを確認し、次を使用して (おそらくユーザー インストールによって) 別のパッケージをインポートすることです。次のコマンド:comm -23 <(pacman -Qeq | sort) <(pacman -Qgq base | sort)
ここでbaseはプリインストールされたグループの1つです。
質問の2番目の部分:次のコマンドを使用してpackagesに関する情報を取得できますpacman -Si <yourpackage>
。出力を依存関係に減らすには、次の点を確認してください。このスレッド
答え3
インストール時に、そのディストリビューションに含まれるパッケージがあるかどうか、ディストリビューションのウェブサイトを確認してください。これらはプリインストールされています。他のすべてはinstaの後に追加されます。