だから、今はDebianベースのシステムで動作するためにのみ必要だと思います(しかし、今後はそうすることができるはずですyum
)。
今私が持っている最高のものはdpkg-query
。たとえば、次のコマンドを実行すると:
dpkg-query --show
次のリストが表示されます(何千ものアイテムを含む)。
...
sudo 1.8.17p1-2
...
vim 2:7.4.1829-1
...
しかし、命名規則はありません。一部のパッケージにはバージョン番号があり、一部にはアーキテクチャがあります。うんgcc-4.9-base:amd64
、しかし私が欲しいのはそれすべてですgcc 4.9
。理想的には、インストールされているすべてのソフトウェアのベンダー、製品、バージョン情報を入手できることを願っています。これを行う方法はありますか?出身地それとも、一種の「あいまいな」一致でなければなりませんか?
私はパッケージマネージャに問い合わせる以外に、他の方法や私が考えていなかった他の方法について開いています。これを達成するために追加のパッケージをインストールすることはできません(ただし、パッケージが存在する場合はどのように機能するのかを知りたいです)。
ベストアンサー1
これにより、インストールされているバイナリパッケージに対応するソースパッケージとバージョンが一覧表示されます。
dpkg-query --show -f '${source:Package} ${source:Version}\n' | sort -u
これは、自動的に取得できる単一のソフトウェアに最も近い一致です。gcc-4.9
対応するすべてのバイナリパッケージではなく、関連バージョンを一度だけ表示できます。 「サプライヤー」情報を簡単に検索できないため、パッケージの詳細(apt-cache show ...
)またはライセンス情報(/usr/share/doc/<package>/copyright
「アップストリーム」プロジェクトを指す必要があります)を確認する必要があります。つまり"vendor");機械が読める形式は保証されていないため、いくつかの手動解析が必要です。
名前に(メジャー)バージョンを含むいくつかのソースパッケージがあります。例えば gcc-4.9
、gcc-5
等。 ;これは、GCCと同様に、パッケージがメジャーバージョンを一緒にインストールするように設計されている場合は避けられない現象です。
同等のRPMコマンドは次のとおりです。
rpm --qf "%{SOURCERPM}\n" -qa | sort -u