'প্রবণতা' ব্যবহার করে একটি নির্দিষ্ট তারিখে ইনস্টল হওয়া প্যাকেজগুলি কীভাবে দেখবেন?


54

aptitude(বা apt-get) ব্যবহার করার পরে, তারিখ অনুসারে বাছাই করা প্যাকেজগুলির তালিকা খুঁজে পাওয়ার কোনও সহজ উপায় আছে কি কেউ জানেন ?

নতুন কিছু চেষ্টা করার জন্য আমি একগুচ্ছ প্যাকেজ ইনস্টল করেছি, তবে এটি কার্যকর হয়নি। আমি ডিস্কের কিছু জায়গা ফিরে পেতে এই প্যাকেজগুলির সমস্ত অপসারণ করতে চাই।

আমি ডাউনলোড করা .deb ফাইলগুলির তালিকাটি দেখার চেষ্টা করেছি, তবে এটি এটি করার চেয়ে বরং পিছনের দিকের মতো মনে হচ্ছে (যদিও এটি কাজ করে)।

উত্তর:


43

দুর্ভাগ্যক্রমে, dpkg (প্যাকেজ হ্যান্ডলার দক্ষতা উপরে কাজ করে) প্যাকেজগুলির ইনস্টল করার তারিখটি বিশেষভাবে সংরক্ষণ করে না, যদিও এটি যুক্ত করার চিন্তাভাবনা রয়েছে। তবে ডিরেক্টরিতে লেখা ফাইলগুলির তারিখ স্ট্যাম্পটি দেখে ইনস্টল করার তারিখটি পাওয়া যাবে /var/lib/dpkg/info


4
আপনি যদি এই পদ্ধতির ব্যবহার করেন তবে কেবলমাত্র *.listফাইলগুলিতে টাইমস্ট্যাম্পগুলি পরীক্ষা করতে ভুলবেন না কারণ প্যাকেজের তারিখের সাথে অন্যান্য ফাইলগুলি স্ট্যাম্পযুক্ত রয়েছে।
ডেভ

20

আমি কোনও লগ ( /var/log/aptitude) লিখতে প্রবণতাটি কনফিগার করেছি । এটি এ জাতীয় আউটপুট উত্পাদন করে;

Aptitude 0.4.11.11: log report
Mon, Feb  9 2009 13:21:28 +0100

IMPORTANT: this log only lists intended actions; actions which fail due to
dpkg problems may not be completed.

Will install 6 packages, and remove 0 packages.
4096B of disk space will be used
===============================================================================
[UPGRADE] apt 0.7.20.1 -> 0.7.20.2
[UPGRADE] apt-utils 0.7.20.1 -> 0.7.20.2
[UPGRADE] base-passwd 3.5.19 -> 3.5.20
[UPGRADE] libgnutls26 2.4.2-5 -> 2.4.2-6
[UPGRADE] libpq5 8.3.5-1 -> 8.3.6-1
[UPGRADE] ucf 3.0015 -> 3.0016
===============================================================================

Log complete.

এটি সঠিক তারিখ এবং প্যাকেজগুলি প্রযোজ্য যা ইনস্টল করে shows এটি কনফিগার করতে, প্রবণতা রেফারেন্সটি অনুসরণ করুন;

Option:Aptitude::Log

Default:/var/log/aptitude

Description: If this is set to a nonempty string, aptitude will log the package
installations, removals, and upgrades that it performs. If the value of
Aptitude::Log begins with a pipe character (ie, ``|''), the remainder of its
value is used as the name of a command into which the log will be piped: for
instance, |mail -s 'Aptitude install run' root will cause the log to be emailed
to root. To log to multiple files or commands, you may set this option to a list
of log targets.

প্রবণতা ম্যান পৃষ্ঠাতে আপনি প্রবণতা রেফারেন্সের একটি লিঙ্ক পাবেন।


1
লিঙ্কটি পোস্ট করুন এবং এটি কীভাবে কার্যকর করা যায়। কিছু ম্যানুয়াল পাঠ্য উল্লেখ কেবল সহায়ক নয়।
not2qubit

17

সমস্ত প্যাকেজ ইনস্টলেশন ইনস্টলেশন তারিখ দেখার একটি সহজ উপায় রয়েছে। শুধু চালানো:

grep " install" /var/log/dpkg.log*

ফলস্বরূপ আপনি সঠিক তারিখ এবং সময় সহ সমস্ত ইনস্টল করা প্যাকেজগুলির একটি তালিকা পাবেন।

মন্তব্যগুলির জন্য ধন্যবাদ যা আমাকে সেই সমাধানে নিয়ে যায়।


2
cdকমান্ড যদি পূর্ণ পথ ব্যবহার প্রয়োজন হয় না catকমান্ড ...
papukaija

1
cdকমান্ডের উদ্দেশ্যটি ছিল lsএই ডিরেক্টরিটির ভিতরে উপলব্ধ dpkg.log ফাইলগুলি পরীক্ষা করা। ls /var/log | grep 'dpkg.log'লগ ফাইলগুলি তালিকাভুক্ত করার জন্য আরও ভাল সমাধান চলছে । এই বিশৃঙ্খলার জন্য দুঃখিত.
jmarceli

2
বা কেবল "গ্রেপ ইনস্টল /var/log/dpkg.log*"?
মার্ক ভ্যান ডায়েলে

1
হু, আমি জানতাম না cat | catযে আপনি করতে পারেন। তবে কেন বিড়াল দুটি ফাইলই এক আদেশে নেই? (বা আরও ভাল: @ মার্কভ্যানডেইলে যা বলেছে ঠিক তাই করুন))
এমউফিয়ার্নলি

13

আমি এটি ওয়েবে এখানে পেয়েছি। এটি dpkg লগ ফাইলের বাইরে dpkg এর ইতিহাস তৈরি করে।

এটি দেখতে খুব সাধারণ দেখাচ্ছে।

function apt-history(){
      case "$1" in
        install)
              cat /var/log/dpkg.log | grep 'install '
              ;;
        upgrade|remove)
              cat /var/log/dpkg.log | grep $1
              ;;
        rollback)
              cat /var/log/dpkg.log | grep upgrade | \
                  grep "$2" -A10000000 | \
                  grep "$3" -B10000000 | \
                  awk '{print $4"="$5}'
              ;;
        *)
              cat /var/log/dpkg.log
              ;;
      esac
}

উৎস

সম্পাদনা

আমি এই স্ক্রিপ্টটি উবুন্টু 8.10 সার্ভারে চেষ্টা করেছি এবং এটি খুব ভালভাবে কাজ করে। আপনি কীভাবে আপনার সমস্যা সমাধান করেছেন তা কিছু তথ্য সরবরাহ করতে পারেন?


5
  • Dpkg লগ ব্যবহার করুন

    locate dpkg.log | xargs cat {} | grep " install "
    
  • বা যদি আপনার না থাকে locate

    find /var/log/ -name 'dpkg.log' | xargs cat {} | grep " install "
    
  • sortযথাযথ সময় ভিত্তিক অর্ডার নিশ্চিত করতে ব্যবহার করুন

    locate dpkg.log | xargs cat {} | grep " install " | sort
    
  • সর্বশেষ 4 টি এন্ট্রি পেতে tac(বিপরীত cat) *, মাথা ব্যবহার করুন

    locate dpkg.log | xargs cat {} | grep " install " | sort | tac | head -n4
    

যেমন শেষ কমান্ডের জন্য, আমি পেয়েছি:

2014-10-08 18:56:12 install xorg-server-source:all <none> 2:1.16.1-1
2014-10-08 18:49:34 install libelementary-data:all <none> 0.7.0.55225-1
2014-10-08 18:46:57 install e17:i386 <none> 0.17.6-1
2014-10-08 18:46:56 install libedje-bin:i386 <none> 1.8.6-2.1+b1

1
আপনি কেন tac+ এর headপরিবর্তে ব্যবহার করবেন tail?
জান্না

1
কিছুক্ষণ হয়ে গেছে, আমি কেন ভুলে গেছি - তবে এটির সম্পূর্ণ কারণ হতে পারে এটির জন্য সম্ভবত ... বা আমার একটি স্বর্ণকেশী মুহুর্তটি ছিল: ডি
20

4

আপনি /var/log/apt/term.log, এবং পুরানো ফাইলগুলির মেয়াদ.লগ.1.gz ইত্যাদি পরীক্ষা করে আপনার পূর্ববর্তী ক্রিয়াকলাপগুলিও সন্ধান করতে পারেন। এটিতে টাইমস্ট্যাম্প রয়েছে এবং ইনস্টলের সময় বার্তা থেকে সম্পূর্ণ লগ থাকে।


2

[বাস্তব প্রশ্নটির উত্তর], হ্যাঁ, কোনও নির্দিষ্ট তারিখে ইনস্টল হওয়া প্যাকেজগুলি দেখার জন্য একটি সহজ উপায় রয়েছে, এমনকি যদি এটি অ্যাপ্লিকেশন ব্যবহার করে টার্মিনালের অভ্যন্তরে করা হয়ে থাকে।

আপনি যদি উবুন্টু সফটওয়্যার সেন্টার থেকে অবাধে ইনস্টলযোগ্য সিন্যাপটিক প্যাকেজ ম্যানেজারটি ইনস্টল করেন তবে আপনার কেবলমাত্র এটির ফাইল মেনু খুলতে হবে এবং "ইতিহাস" বিকল্পটি বেছে নিতে হবে। সেগুলিতে ইনস্টল করা বা অপসারণের পদ্ধতিটি নির্বিশেষে, আপনি তারিখ অনুসারে সংযুক্ত সমস্ত যুক্ত এবং সরানো অ্যাপ্লিকেশন প্যাকেজগুলির অ্যাকাউন্টিং পাবেন।


2

সত্যিই একটি 'অফিসিয়াল' pkginstall.shস্ক্রিপ্ট রয়েছে যা এটি করতে পারে। সরকারী ডকুমেন্টেশনের নির্দেশাবলী অনুসরণ করুন । সংক্ষেপে, উপরের লিঙ্কটি থেকে স্ক্রিপ্টটি ডাউনলোড করুন, এটি নির্বাহযোগ্য কিনা তা নিশ্চিত করুন এবং তারপরে এটি চালান:

~/pkginstalls.sh

এটি pkginstalls.txtআপনার হোম ডিরেক্টরিতে তারিখ অনুসারে বাছাই করা সমস্ত ইনস্টল করা প্যাকেজ যুক্ত ফাইল তৈরি করবে ।

বিটিডব্লিউ, এটি স্ক্রিপ্টের বিষয়বস্তু:

#!/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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.