だから、今は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
答え2
Debian では、次のオプションを使用できます。--showformat=フォーマット~のためdpkgクエリ。
たとえば、
dpkg-query --show --showformat='${binary:Package}\t${Version}\t${Architecture}\t${binary:Summary}\n' gcc
答え3
Debian では実行できますdpkg --list
特定のパッケージの実行に関する詳細情報を取得するには、次の手順を実行します。
dpkg -p <package_name>
または
dpkg -s <package_name>
たとえば、
# dpkg -s gcc
Package: gcc
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 42
Maintainer: Debian GCC Maintainers <[email protected]>
Architecture: amd64
Source: gcc-defaults (1.136)
Version: 4:4.9.2-2
Provides: c-compiler
Depends: cpp (>= 4:4.9.2-2), gcc-4.9 (>= 4.9.2-1~)
Recommends: libc6-dev | libc-dev
Suggests: gcc-multilib, make, manpages-dev, autoconf, automake, libtool, flex, bison, gdb, gcc-doc
Conflicts: gcc-doc (<< 1:2.95.3)
Description: GNU C compiler
This is the GNU C compiler, a fairly portable optimizing compiler for C.
This is a dependency package providing the default GNU C compiler.
RHELベースのディストリビューションでは、以下を実行できます。rpm -qa