Làm thế nào để liệt kê gói cài đặt và chi tiết của nó trên Ubuntu?


27

Tôi chưa quen với Ubuntu và đang cố gắng tìm ra cách liệt kê tất cả các gói đã cài đặt và các chi tiết của nó như phiên bản, phát hành, thời gian cài đặt, danh mục trên Ubuntu. Tìm thấy rằng các lệnh sau sẽ giúp tôi có được một số thông tin này:

1) dpkg -l

2) dpkg-query -W -f='${PackageSpec}\t${version}\t${Description}\n'

Không giống như Redhat thời gian cài đặt và thông tin danh mục bị thiếu trong này. Bất cứ ai cũng có thể biết một cách để lấy các chi tiết này?

Cảm ơn trước.

Câu trả lời:


33

Đơn giản và thanh lịch:

sudo dpkg -l | more

hoặc là

sudo dpkg -l | less

Nếu bạn muốn có được mô tả của một số gói cụ thể, hãy nói firefox:

sudo dpkg -l | grep firefox

Đây là đầu ra của tôi về:

$ sudo dpkg -l | more
 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  accountsservice                             0.6.15-2ubuntu9.4                       query and manipulate user account information
ii  acl                                         2.2.51-5ubuntu1                         Access control list utilities
ii  acpi-support                                0.140                                   scripts for handling many ACPI events
ii  acpid                                       1:2.0.10-1ubuntu3                       Advanced Configuration and Power Interface event daemon
ii  activity-log-manager-common                 0.9.4-0ubuntu3.2                        blacklist configuration for Zeitgeist (assets)
ii  activity-log-manager-control-center         0.9.4-0ubuntu3.2                        blacklist configuration for Zeitgeist (control center integrat
ion)
ii  adduser                                     3.113ubuntu2                            add and remove users and groups
ii  adium-theme-ubuntu                          0.3.2-0ubuntu1                          Adium message style for Ubuntu
ii  aisleriot                                   1:3.2.3.2-0ubuntu1                      Solitaire card games
ii  akonadi-backend-mysql                       1.7.2-0ubuntu1                          MySQL storage backend for Akonadi
ii  akonadi-server                              1.7.2-0ubuntu1                          Akonadi PIM storage service
ii  alacarte                                    0.13.2-2ubuntu4                         easy GNOME menu editing tool
ii  alsa-base                                   1.0.25+dfsg-0ubuntu1                    ALSA driver configuration files
ii  alsa-utils                                  1.0.25-1ubuntu5                         Utilities for configuring and using ALSA
ii  anacron                                     2.3-14ubuntu1                           cron-like program that doesn't go by time
ii  apg                                         2.2.3.dfsg.1-2                          Automated Password Generator - Standalone version
ii  app-install-data                            0.12.04.4                               Ubuntu applications (data files)
ii  app-install-data-partner                    12.12.04.1                              Application Installer (data files for partner applications/rep
ositories)
ii  apparmor                                    2.7.102-0ubuntu3.7                      User-space parser utility for AppArmor
ii  appmenu-gtk                                 0.3.92-0ubuntu1.1                       Export GTK menus over DBus
ii  appmenu-gtk3                                0.3.92-0ubuntu1.1                       Export GTK menus over DBus
ii  appmenu-qt                                  0.2.6-0ubuntu1                          appmenu support for Qt
ii  apport                                      2.0.1-0ubuntu17.1                       automatically generate crash reports for debugging
ii  apport-gtk                                  2.0.1-0ubuntu17.1                       GTK+ frontend for the apport crash report system
ii  apport-symptoms                             0.16.1                                  symptom scripts for apport
ii  apt                                         0.8.16~exp12ubuntu10.7                  commandline package manager
ii  apt-transport-https                         0.8.16~exp12ubuntu10.7                  https download transport for APT
ii  apt-utils                                   0.8.16~exp12ubuntu10.7                  package managment related utility programs
--More--

Để có được ngày và thời gian của các gói được cài đặt

cat /var/log/dpkg.log | grep " install "

Để có được gói cụ thể:

$cat /var/log/dpkg.log | grep " install " | grep banshee
2013-12-12 12:51:48 install banshee <none> 2.4.1-3ubuntu1~precise2
2013-12-12 12:51:51 install banshee-extensions-common <none> 2.4.0-1ubuntu1
2013-12-12 12:51:51 install banshee-extension-radiostationfetcher <none> 2.4.0-    1ubuntu1
2013-12-12 12:51:51 install banshee-extension-soundmenu <none> 2.4.1-3ubuntu1~precise2

Để có được phần

$apt-cache show firefox | grep Section
Section: web

Xem thêm: ListInstalledPackagesByDate


Tôi đã thấy hai cách này nhưng không chắc đây có phải là những cách nhất quán để sử dụng trên tất cả các phiên bản Ubuntu hay không. Một mối quan tâm nữa là nếu chỉ báo cáo apt-cache trong một số điều kiện nhất định (như nếu bật bộ đệm ẩn). Tôi có thể dựa vào các lệnh này để có được thông tin chi tiết không?
dùng1787572

Có vẻ như bộ đệm apt có thể bị xóa và lệnh đó sẽ không trả về tất cả thông tin. Đúng nếu tôi đã sai lầm. Dpkg --print-avail <pack_name> có giúp tôi nhận được các chi tiết tương tự nếu bộ đệm apt bị xóa không?
dùng1787572

@ user224730: Tôi không biết bạn sẽ xóa như thế nào apt-cache, nhưng vâng, bạn đúng. dpkg --print-availsẽ làm công việc tương tự nếu bạn muốn có đủ thông tin. Một điều bạn cần lưu ý rằng sudo apt-cache showlệnh luôn cung cấp cho bạn một số thông tin bổ sung. Bạn có thể xác minh nó bằng cách so sánh hai lệnh đầu ra này. 1. sudo apt-cache show firefox | wcvà 2. sudo dpkg --print-avail firefox | wcBạn sẽ nhận thấy rằng lệnh 1 trả về số lượng dòng, từ và ký tự nhiều hơn số thứ hai . Trả lời nếu bạn vẫn còn một số nghi ngờ ..
Saurav Kumar 16/12/13

apt-get clean là lệnh tôi đã học về cách xóa bộ đệm. Tôi đã chạy cả hai lệnh bạn đã đề cập trên hệ thống của mình và thấy rằng apt-cache hiển thị firefox | wc đã trả lại cho tôi một số kỷ lục, tuy nhiên dpkg --print-avail | wc thì không. Tôi đã kiểm tra nếu firefox được cài đặt trên hệ thống của mình bằng cách chạy dpkg -l | grep firefox và tôi không có gì. Tôi đã chạy các lệnh tương tự cho gói được cài đặt trên hệ thống và thấy rằng lệnh show apt-cache cũng in thông tin về bản vá mới nhất có sẵn cho gói này. Điều đó có nghĩa, gói là ứng cử viên để cập nhật.
dùng1787572

Chà, điều đó đưa tôi đến quyết định rằng dpkg --print-avail là lệnh tôi đang tìm kiếm cung cấp cho tôi thông tin thực tế của cấp gói được cài đặt trên hệ thống.
dùng1787572

5

apt-cache showpkg <package> sẽ cung cấp cho bạn thông tin chi tiết về các phiên bản gói có sẵn, phụ thuộc chuyển tiếp và đảo ngược, v.v.

apt-cache show <package> sẽ cung cấp mô tả, danh mục (Phần), v.v.

Tôi không biết cách để xem gói được cài đặt vào thời gian nào.


3

Bây giờ dễ dàng hơn nhiều để có được các chi tiết cài đặt của các gói.

Dưới đây là các bước đơn giản:

  1. Sao chép và dán đoạn script sau vào một tệp và lưu nó với bất kỳ tên nào pkgdetails.

    #!/bin/bash
    
    #Get the details and section of installed packages
    # usage:
    # pkgdetails <pkgname1> <pkgname2>
    
    #first append all info from archived logs
    
    i=2
    mycount=$(ls -l /var/log/dpkg.log.*.gz | wc -l)
    nlogs=$(( $mycount + 1 ))
    
    while [ $i -le $nlogs ]
    do
    if [ -e /var/log/dpkg.log.$i.gz ]; then
    zcat /var/log/dpkg.log.$i.gz | grep "\ install\ " >> $HOME/pkgtmp.txt
    fi
    i=$(( $i+1 ))
    
    done
    
    #next append all info from unarchived logs
    
    i=1
    nulogs=$(ls -l /var/log/dpkg.log.* | wc -l)
    nulogs=$(( $nulogs - $nlogs + 1 ))
    while [ $i -le $nulogs ]
    do
    if [ -e /var/log/dpkg.log.$i ]; then
    cat /var/log/dpkg.log.$i | grep "\ install\ " >> $HOME/pkgtmp.txt
    fi
    i=$(( $i+1 ))
    
    done
    
    #next append current log
    
    cat /var/log/dpkg.log | grep "\ install\ " >> $HOME/pkgtmp.txt
    
    #sort text file by date
    
    sort -n $HOME/pkgtmp.txt > $HOME/pkginstalls.txt
    
    rm $HOME/pkgtmp.txt
    
    # Now displaying the installation details of packages passed as arguments
    
    for pkg in $@
    do
    echo "--------------------- Installation Details of $pkg ----------------------"
    echo 
    cat $HOME/pkginstalls.txt | grep -i $pkg
    echo
    apt-cache show $pkg | grep "Section" | sort -u
    echo
    done
    
    exit 0
    
  2. Làm cho tập tin thực thi và sao chép /binđể sử dụng nó như một lệnh.

    chmod a+x pkgdetails && sudo cp pkgdetails /bin/
    
  3. Bây giờ sử dụng pkgdetailslệnh để có được các chi tiết cài đặt và phần của gói:

    pkgdetails qbittorrent artha
    

Đây là đầu ra của tôi:

--------------------- Installation Details of qbittorrent ----------------------

2013-07-24 07:52:27 install qbittorrent <none> 2.9.7-1
2013-07-24 09:11:32 install qbittorrent <none> 3.0.x-0~4366-20130722~precise1
2013-10-19 05:32:27 install qbittorrent <none> 3.0.x-0~4389-20130802~precise1

Section: net
Section: universe/net

--------------------- Installation Details of artha ----------------------

2013-07-11 23:50:16 install artha <none> 1.0.2-1ubuntu1

Section: universe/utils

1

mở trình soạn thảo văn bản và dán theo sau với anyname.sh và làm cho nó có thể thực thi được với

chmod +x  anyname.sh   

mã:

#!/bin/bash
#pkginstalls.sh
#creates text file with a list of all packages installed by date

#first append all info from archived logs

i=2
mycount=$(ls -l /var/log/dpkg.log.*.gz | wc -l)
nlogs=$(( $mycount + 1 ))

while [ $i -le $nlogs ]
do
if [ -e /var/log/dpkg.log.$i.gz ]; then
zcat /var/log/dpkg.log.$i.gz | grep "\ install\ " >> $HOME/pkgtmp.txt
fi
i=$(( $i+1 ))

done

#next append all info from unarchived logs

i=1
nulogs=$(ls -l /var/log/dpkg.log.* | wc -l)
nulogs=$(( $nulogs - $nlogs + 1 ))
while [ $i -le $nulogs ]
do
if [ -e /var/log/dpkg.log.$i ]; then
cat /var/log/dpkg.log.$i | grep "\ install\ " >> $HOME/pkgtmp.txt
fi
i=$(( $i+1 ))

done

#next append current log

cat /var/log/dpkg.log | grep "\ install\ " >> $HOME/pkgtmp.txt

#sort text file by date

sort -n $HOME/pkgtmp.txt > $HOME/pkginstalls.txt

rm $HOME/pkgtmp.txt

exit 0

tín dụng vào cộng đồng Ubuntu


Cảm ơn vi đa trả lơi. Kịch bản sẽ phải được sửa đổi để có thêm một vài chi tiết như thể loại.
dùng1787572

1

Sử dụng apt

Bạn cũng có thể liệt kê các gói được cài đặt với:

apt list --installed

Các gói cài đặt thủ công của bạn được hiển thị với:

apt list --manual-installed

và tất cả các phiên bản với:

apt list --all-versions

Đây là những lệnh rất hữu ích. Chẳng hạn, nếu bạn muốn cài đặt các gói đã cài đặt cục bộ vào một máy tính khác, bạn chỉ phải

apt list --installed | awk -F/ -v ORS=" " 'NR>1 {print $1}' > apt_packages.txt

hoặc nếu bạn chỉ muốn các gói cài đặt thủ công của bạn

 apt list --manual-installed | awk -F/ -v ORS=" " 'NR>1 {print $1}' > apt_packages.txt   

Bây giờ tất cả các gói apt của bạn đã sẵn sàng để cài đặt trên hệ thống Ubuntu khác hoặc đã cài đặt mới.

sudo apt-get install < apt_packages.txt

miêu tả cụ thể

Nếu bạn muốn biết chính xác khi , những gì bao bì đã được gỡ bỏ, bạn phải nhìn vào bạn

/var/log/apt

danh mục. Tìm kiếm trong các history.logtập tin; sử dụng sed , awk , grep hoặc đơn giản là trình soạn thảo văn bản của bạn để tìm kiếm các tệp lịch sử của bạn.



0

Tôi có một câu trả lời một phần (và không đủ điểm rep để đưa ra nhận xét này) - nhật ký cài đặt ở đây:

sudo less /var/log/apt/term.log 

Vì bạn có vẻ am hiểu dòng lệnh hơn tôi một chút, bạn có thể thử sửa đổi tập lệnh ở đây để phân tích cú pháp:

http://lists.debian.org/debian-user/2002/08/msg01219.html

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.