dpkg -l
コマンドを使用して、インストールしたパッケージのバージョンを確認します。例えば:
dpkg -l network-manager
パッケージに関する情報を返します。
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-=========================-=========================-==================================================================
ii network-manager 0.8.3~git.20101118t223039 network management framework daemon
ご覧のとおり、0.8.3~git.20101118t223039
を返しますが、これはバージョンを切り捨てるので間違っています(この質問の目的のために長いバージョンを選択しました)。私が過去にこれを解決した方法は、愚かな長いCOLUMNS引数を渡してそれを拡張することです:
COLUMNS=200 dpkg -l network-manager
これにより、バージョン番号全体だけでなく、大量のジャンクも取得できます。
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-============================================-============================================-========================================================================================================
ii network-manager 0.8.3~git.20101118t223039.d60a988-0ubuntu1 network management framework daemon
これで、0.8.3~git.20101118t223039.d60a988-0ubuntu1
という完全なバージョン番号が表示されます。
これは、インストールされたパッケージのバージョン番号を見つける適切な方法ではないと感じています。これは実際には過去の問題ではありませんでしたが、バージョンに「ubuntu」が追加され、PPAが増えたことで、これらの文字列はますます長くなっています。もっと簡単な方法はありますか?
dpkg -s <packagename> | grep '^Version:'
e。 g .:
dpkg -s network-manager | grep '^Version:'
サンプル出力:
Version: 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
dpkg-query --showformat='${Version}' --show python3-lxml
dpkg
コマンドを使用していませんが、 apt-show-versions
例:
$ apt-show-versions network-manager
network-manager/maverick uptodate 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
あなたの質問はdpkgの使用を指定しているので、aneeshepが最良の答えだと思います。しかし、完全を期すために、別の方法があります。
apt-cache policy network-manager
network-manager:
Installed: 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
Candidate: 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
Version table:
*** 0.8.1+git.20100810t184654.ab580f4-0ubuntu2 0
500 http://us.archive.ubuntu.com/ubuntu/ maverick/main i386 Packages
100 /var/lib/dpkg/status
または、バージョン番号だけの場合:
apt-cache policy network-manager | grep 'Installed:' | cut -c 14-
0.8.1+git.20100810t184654.ab580f4-0ubuntu2
以下のようにdpkg
を介してインストール済みパッケージのバージョンを見つける別の方法、
dpkg -l | awk '$2=="package-name" { print $3 }'
例:
$ dpkg -l | awk '$2=="network-manager" { print $3 }'
0.9.8.0-0ubuntu22
説明:
dpkg -l
コマンドは、インストールされているすべてのパッケージをリストします。この標準出力は、awk
コマンドへの入力として供給されました。awk
は、標準入力( 2)見つかった場合、対応する行を取得します。最後に、実際にパッケージバージョンを表す(column 3)の値を出力します。
$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
上記によれば、列2はパッケージ名を表し、列3はパッケージバージョンを表し、列4はアーキテクチャを表し、列5は-を表しますパッケージの説明。