Làm cách nào để liệt kê tất cả các gói đã cài đặt với số phiên bản cụ thể?


27

Tôi muốn liệt kê tất cả các gói đã cài đặt, với số phiên bản cụ thể trên hệ thống của tôi. Tôi đã kiểm tra dpkg --get-selections( Cách liệt kê tất cả các gói đã cài đặt ) nhưng nó không hiển thị cho tôi những gì tôi cần. Ví dụ:

$ dpkg --get-selections apache2
apache2                                         install

cho thấy apache2 được cài đặt, tuy nhiên không phải là phiên bản. Gần đây tôi đã làm một apt-get upgradeđể apache2.2.22-1 nên được phiên bản cài đặt ( http://packages.ubuntu.com/precise-updates/apache2.2-common ), nhưng làm thế nào tôi có thể chứng minh rằng?

Cảm ơn!

Câu trả lời:


35

Sử dụng dpkg -lthay thế.

Thí dụ:

dpkg -l | grep '^ii' | grep skype

Đầu ra này:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype
ii ứng dụng khách skype 4.2.0.11-0ubfox0.12.04.2 i386 cho Skype VOIP ...

Nếu bạn chỉ muốn trích xuất tên và phiên bản, bạn có thể làm điều này:

dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}'

Mà sẽ chỉ in cột thứ hai và thứ ba từ đầu ra ở trên, như thế này:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype | awk '{in $ 2 "\ t" $ 3}'
skype 4.2.0.11-0ubfox0.12.04.2

Tất nhiên, nếu bạn muốn liệt kê tất cả các gói đã cài đặt của mình với các phiên bản của chúng và không chỉ Skype, thì chỉ cần xóa grep skypephần đó để thực hiện lệnh như thế này:

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'

Tôi đã nhận thấy số phiên bản rút ngắn dpkg -l nếu chúng dài hơn 21 ký tự và giống như tất cả các phiên bản gói dài như 22 ký tự. :(
ThorSummoner

12

Sử dụng

dpkg-query --show apache2

để lấy số phiên bản cho gói apache2

dpkg-query --show 

để lấy số phiên bản cho tất cả các gói đã cài đặt


1
Giải pháp của bạn đã cho tôi nhiều hơn 20% gói dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'. Bạn có biết sự khác biệt là gì không?
Thomas Jensen

3
@Thomas Jensen: Cảm ơn vì đã phát hiện ra điều này. dpkg-query --showthực tế không hiển thị các gói đã cài đặt , nhưng các gói không được cài đặt . Đó là nó hiển thị, ví dụ như các gói được cài đặt một nửa hoặc các gói với các tệp cấu hình còn lại.
Florian Diesch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.