स्थापित पैकेज और ubuntu पर इसकी जानकारी कैसे सूचीबद्ध करें?


27

मैं उबंटू के लिए नया हूं और सभी स्थापित पैकेजों और इसके विवरण जैसे संस्करण, रिलीज, इंस्टॉल समय, श्रेणी को उबंटू में सूचीबद्ध करने का तरीका जानने की कोशिश कर रहा हूं। पाया कि निम्नलिखित कमांड मुझे इस जानकारी को प्राप्त करने में मदद करेंगे:

1) dpkg -l

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

Redhat के विपरीत स्थापित समय और श्रेणी की जानकारी इसमें गायब है। क्या कोई इन विवरणों को पुनः प्राप्त करने का तरीका जान सकता है?

अग्रिम में धन्यवाद।

जवाबों:


33

सरल और सुरुचिपूर्ण:

sudo dpkg -l | more

या

sudo dpkg -l | less

यदि आप कुछ विशिष्ट पैकेजों का वर्णन प्राप्त करना चाहते हैं firefox:

sudo dpkg -l | grep firefox

यहाँ मेरा उत्पादन है:

$ 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--

स्थापित होने की तारीख और समय प्राप्त करने के लिए

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

विशिष्ट पैकेज पाने के लिए:

$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

अनुभाग प्राप्त करने के लिए

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

इसे भी देखें: ListInstalledPackagesByDate


मैंने इन दो तरीकों को देखा था, लेकिन यह सुनिश्चित नहीं था कि ये उबंटू के सभी संस्करणों पर उपयोग करने के सुसंगत तरीके हैं। एक और चिंता यह थी कि apt-cache केवल कुछ स्थितियों में रिपोर्ट करता है (जैसे यदि कैशिंग सक्षम है)। क्या मैं विवरण प्राप्त करने के लिए इन आदेशों पर भरोसा कर सकता हूं?
user1787572

ऐसा लगता है कि एप कैश को डिलीट किया जा सकता है और यह कमांड सारी जानकारी वापस नहीं करेगा। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं। क्या dpkg --print-gain <package_name> apt कैश डिलीट होने पर मुझे वही विवरण प्राप्त करने में मदद करेगा?
user1787572

@ user224730: मुझे नहीं पता कि आप कैसे हटाएंगे apt-cache, लेकिन हां आप सही हैं। dpkg --print-availयदि आप पर्याप्त जानकारी प्राप्त करना चाहते हैं तो वही काम करेंगे। एक बात आपको ध्यान रखनी चाहिए कि sudo apt-cache showकमांड आपको हमेशा कुछ अतिरिक्त जानकारी देता है। आप इन दोनों कमांड आउटपुट की तुलना करके इसे सत्यापित कर सकते हैं। 1. sudo apt-cache show firefox | wcऔर sudo dpkg --print-avail firefox | wcआप देखेंगे कि 1 आदेश 2 की तुलना में लाइनों, शब्दों और वर्णों की अधिक संख्या देता है । अगर आपको अभी भी कुछ संदेह है तो उत्तर दें ..
सौरव कुमार

apt-get clean वह कमांड है जिसके बारे में मैंने सीखा है जिससे कैश डिलीट हो जाता है। मैंने अपने सिस्टम पर आपके द्वारा बताई गई दोनों कमांडों को चलाया और पाया कि apt-cache शो फायरफॉक्स है wc ने मुझे कुछ रिकॉर्ड लौटाया, हालाँकि dpkg --print-avail | wc नहीं किया। अगर dpkg -l | grep फ़ायरफ़ॉक्स और मुझे कुछ नहीं मिला। मैंने पैकेज के लिए वही कमांड चलाई जो सिस्टम पर स्थापित है और पाया गया कि apt-cache शो कमांड इस पैकेज के लिए उपलब्ध नवीनतम पैच के बारे में जानकारी प्रिंट करता है। इसका मतलब है, पैकेज अद्यतन के लिए उम्मीदवार है।
user1787572

खैर, यह मुझे इस निर्णय पर ले जाता है कि dpkg --print- लाभ वह कमांड है जिसकी मुझे तलाश है, जो मुझे सिस्टम पर स्थापित पैकेज स्तर की वास्तविक जानकारी देता है।
user1787572

5

apt-cache showpkg <package> आपको क्या पैकेज संस्करण उपलब्ध हैं, आगे और रिवर्स निर्भरता आदि के बारे में जानकारी देंगे।

apt-cache show <package> विवरण, श्रेणी (अनुभाग) आदि प्रदान करेगा।

मुझे यह देखने का कोई तरीका नहीं है कि किस समय एक पैकेज स्थापित किया गया था।


3

अब पैकेजों की स्थापना विवरण प्राप्त करना बहुत आसान है।

यहाँ सरल कदम हैं:

  1. एक फाइल में स्क्रिप्ट के बाद कॉपी और पेस्ट करें और किसी भी नाम के साथ इसे सेव करें 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. फ़ाइल को निष्पादन योग्य बनाएं और /binइसे कमांड के रूप में उपयोग करने के लिए कॉपी करें ।

    chmod a+x pkgdetails && sudo cp pkgdetails /bin/
    
  3. अब pkgdetailsस्थापना विवरण और संकुल के अनुभाग को प्राप्त करने के लिए कमांड का उपयोग करें :

    pkgdetails qbittorrent artha
    

यहाँ मेरा उत्पादन है:

--------------------- 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

किसी भीname.sh के साथ पाठ संपादक खोलें और पेस्ट करें और इसके साथ निष्पादन योग्य बनाएं

chmod +x  anyname.sh   

कोड:

#!/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

उबंटू समुदाय को श्रेय जाता है


उत्तर के लिए धन्यवाद। श्रेणी जैसी कुछ और जानकारी प्राप्त करने के लिए स्क्रिप्ट को संशोधित करना होगा।
user1787572

1

उपयुक्त का उपयोग करना

आप इसके साथ स्थापित पैकेट को भी सूचीबद्ध कर सकते हैं:

apt list --installed

आपके मैन्युअल इंस्टॉल किए गए पैकेजों को इसके साथ दिखाया गया है:

apt list --manual-installed

और इसके साथ सभी संस्करण:

apt list --all-versions

ये बहुत उपयोगी कमांड हैं। उदाहरण के लिए, यदि आप किसी अन्य कंप्यूटर में स्थानीय संस्थापित संकुल को स्थापित करना चाहते हैं, तो आपको केवल करना होगा

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

या यदि आप केवल अपने मैनुअल स्थापित संकुल चाहते हैं

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

अब आपके सभी एप-पैकेज दूसरे या नए इंस्टॉल किए गए उबंटू सिस्टम पर इंस्टॉल होने के लिए तैयार हैं।

sudo apt-get install < apt_packages.txt

विस्तृत विवरण

यदि आप यह जानना चाहते हैं कि कब , कौन से और कौन से पैकेज निकाले गए हैं, तो आपको अपने में देखना होगा

/var/log/apt

निर्देशिका। history.logफाइलों में खोजें ; अपने इतिहास की फाइलों को खोजने के लिए अपने टेक्स्ट-एडिटर में sed , awk , grep या सिंपल का उपयोग करें।



0

मेरे पास एक आंशिक उत्तर है (और यह टिप्पणी करने के लिए पर्याप्त प्रतिनिधि नहीं है) - स्थापित लॉग यहां है:

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

जैसा कि आप मुझ से थोड़ा अधिक कमांड लाइन के जानकार लगते हैं, आप स्क्रिप्ट को संशोधित करने की कोशिश कर सकते हैं:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.