ব্যবহারকারীর দ্বারা ইনস্টল করা সমস্ত প্যাকেজ সন্ধান করুন


38

কোনও উবুন্টু সিস্টেমে ব্যবহারকারীর দ্বারা ইনস্টল হওয়া সমস্ত প্যাকেজগুলির তালিকা পাওয়ার কোনও উপায় আছে কি না?

(ধারণাটি হ'ল একটি বিস্তৃত তালিকা পাবেন যা পরিষ্কার উবুন্টু ইনস্টলেশনতে একই প্যাকেজ ইনস্টল করতে ব্যবহার করা যেতে পারে)

উত্তর:


15

এই ফাইলগুলি দেখুন,

  1. ' /var/log/installer/initial-status.gz' - আপনার প্রাথমিক ইনস্টলেশন
    • এই ফাইলের তারিখটি আপনার ইনস্টলেশন তারিখ হবে (আমার মনে হয়)
    • ' /var/log/dpkg.log' আপডেটের সময়রেখা (এটি আপনি চান)
    • ' /var/log/apt/term.log' - aptআপনার সিস্টেমে জিনিস আপডেট হয়েছে
    • ' ইনস্টলেশন করার জন্য ডাউনলোড করা প্যাকেজগুলি /var/cache/apt/archives/'ধারণ করবেdeb

আপডেট: নতুন ইনস্টলগুলির সঠিক তালিকার জন্য নিম্নলিখিত দুটি পদক্ষেপ ব্যবহার করুন:

  1. এক্সিকিউট: grep -w install /var/log/dpkg.log > full-list.log
  2. /var/log/installer/initial-status.gzটাইমস্ট্যাম্পের বাইরে লাইনগুলি দেখুন

যেহেতু আপনি এই প্যাকেজগুলির সাহায্যে অন্য সিস্টেমে একটি পরিষ্কার ইনস্টলেশন পেতে চান, আপনি এমনকি 'ক্যাশে / অ্যাপ্লিকেশন / সংরক্ষণাগারগুলি' থেকে নতুন ইনস্টলেশনের পথে 'দেবে' ফাইলগুলি অনুলিপি করতে এবং সেগুলিকে একটি শটে ইনস্টল করতে পারেন (ডাউনলোড না করেই) তাদের আবার)।


ভকভগক. এটি দরকারী, যদিও আমি এই তালিকাটি পেতে একটি একক কমান্ডের জন্য আরও সন্ধান করছিলাম। বিড়াল /var/log/dpkg.log | গ্রাপ 'ইনস্টল' কাছে আসবে বলে মনে হচ্ছে যদি আমি ইনস্টলেশন তারিখ / সময় পর্যন্ত ইনস্টল হওয়া আইটেমগুলি উপেক্ষা করি
রাব্রেস্কি

ডাউন-ভোটের জন্য যুক্ত যুক্তি যদি কোনও উত্তর থাকে তবে উত্তরের কোনও সমস্যা বুঝতে সহায়তা করবে। ভবিষ্যতে আরও ভাল উত্তর হতে পারে।
নিক

ওপস, ডাউনভোটটি দুর্ঘটনাক্রমে আমার ছিল। আমি ইতিমধ্যে আপনার উত্তর upvated ছিল। আমি যখন আপনার উত্তরটিকে 'চূড়ান্ত' হিসাবে চিহ্নিত করার চেষ্টা করলাম তখন আমি মিস ভোটে এবং নিচের ভোটের তীরটিকে আঘাত করেছি। এটি পূর্বাবস্থায় ফেলার চেষ্টা করে বার্তাটি প্রদর্শিত হয়েছিল: "এই উত্তরটি সম্পাদনা না করা হলে পরিবর্তন করা খুব বেশি পুরানো ভোট দিন" " দুঃখিত নিক, ডাউনভোট এবং বিভ্রান্তির জন্য উভয়ই। :-(
রাবুরস্কি

@ র‌্যাব ডিস্কিঙ্কি, ঠিক আছে ... ক্ষতি হয় নি।
নিক

সার্ভার ইনস্টলের মতো / var / লগ / ইনস্টলার উপস্থিত না থাকলে কাজ করে না। এছাড়াও যদি আপনি "উবুন্টু" - কোন উবুন্টু সম্পর্কে কথা বলছেন তবে ভার্সন সংখ্যা যুক্ত করার অর্থ কী?

8

কেবল গ্রিনগুলির জন্য, আমি একটি ওয়ান-লাইনার (স্পষ্টতার জন্য এখানে বিভক্ত) একসাথে রেখেছি যা ম্যানুয়ালি ইনস্টল হওয়া প্যাকেজগুলি সনাক্ত করে , প্রাথমিকভাবে ইনস্টল হওয়া এবং স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া কোনও প্যাকেজগুলি বাদ দিয়ে:

comm -13 \
  <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort) \
  <(comm -23 \
    <(dpkg-query -W -f='${Package}\n' | sed 1d | sort) \
    <(apt-mark showauto | sort) \
  )

এটি ভিতরে bashএবং ভিতরে উভয়ই কাজ করে zsh


এটি প্রায় নিখুঁতভাবে কাজ করে, প্রাথমিক ইনস্টলের সময় ইনস্টল করা লাইব্রেরিগুলির একগুচ্ছ মুদ্রণ করা দেখে মনে হয়। সেখানে একটি গুচ্ছ libtiff, libxcbইত্যাদি যা আমি নিজেকে ইনস্টল করা হয়নি। এই উত্তর: superuser.com/a/105000/24349 ইনস্টল সময় অনুসারে বাছাই করে এবং সিস্টেম ইনস্টলের সময়ের আগে সমস্ত কিছু মুছে ফেলার মাধ্যমে এটি যত্ন করে। শেলের দুর্দান্ত (আব) ব্যবহার!
হ্যাক্সনি

3

উপরের তথ্যের উপর ভিত্তি করে, আমি ম্যানুয়ালি ইনস্টল করা প্যাকেজগুলির তালিকা করতে একটি পাইথন স্ক্রিপ্ট লিখেছিলাম। এই লিঙ্কটি দেখুন ।

এটির জন্য নির্দ্বিধায় আমি যদিও এটির জন্য কোনও দায়বদ্ধতা গ্রহণ করি না। যাইহোক, প্রতিক্রিয়া এবং পরামর্শ সর্বদা স্বাগত।


উজ্জ্বল! এটি চালাতে কিছুটা সময় নেয়, তবে এটিই আমার একমাত্র সমাধান যা আমার প্রয়োজনের মতো করে!
haxney

2
দুর্ভাগ্যক্রমে লিঙ্কটি এখন ভেঙে গেছে (পাইথন ট্রেসব্যাক দেখায়) যা উত্তরটি এখানে রাখার মূল্য প্রদর্শন করে (বিশেষত একটি "সংক্ষিপ্ত অজগর লিপি"
ডেভিড লজং ম্যাডিসন

স্ক্রিপ্টের সাথে একটি গিথুব রেপো পেয়েছে : github.com/gerjantd/bin/blob/master/… ডাউনলোড করতে 'কাঁচা' ক্লিক করুন, এবং 'পাইথন তালিকার_মানু_ইনস্টল_প্যাকেজ.পি' দিয়ে চালান
ডেভিড

2
গিথুব লিঙ্কটিও এখন ভেঙে গেছে ...
সুজানা

2

সম্পর্কিত প্রশ্নটির জন্য আমার উত্তর এখানে দেখুন : আমি কীভাবে আমার ডেবিয়ান সিস্টেমে ইনস্টল করা সমস্ত প্যাকেজের তালিকা প্রদর্শন করতে পারি? । প্রশ্নের অন্যান্য উত্তরগুলির মধ্যে কয়েকটিতে এ জাতীয় তালিকা পাওয়ার জন্য দুর্দান্ত পরামর্শ রয়েছে।

এই প্রশ্নটিকে একটি সদৃশ হিসাবে চিহ্নিত করা উচিত কারণ আগের প্রশ্নটিও এই প্রশ্নটি কভার করে, তবে এই প্রশ্নটি নিজের পক্ষে দাঁড় করানো কার্যকর হবে যাতে এটি সন্ধান করা সহজ।


1

ধরে নিচ্ছি আপনার একটি সুসংগত ইতিহাস আছে এবং প্রবণতা ব্যবহার করুন:

history | grep -e "^..... aptitude install"

আপনি যে প্যাকেজগুলি প্রবণতা ইনস্টল করে ইনস্টল করেছেন কেবল তার তালিকা তৈরি করবে ... ডু


1

এটি হ্যাক-জব, তবে এটি পুরোপুরি কার্যকর হয়।

প্রথমে http://releases.ubuntu.com/maverick/ এ যান (বা আপনি যে উবুন্টু ব্যবহার করছেন তার সংস্করণ যাই হোক না কেন) এবং আপনি যে উবুন্টুর সংস্করণটি ব্যবহার করছেন *.manifest fileতার সাথে সম্পর্কিত এটি ধরুন।

তারপরে, <manifest file>আপনার ডাউনলোড করা ফাইলের পথ দিয়ে নিম্নলিখিত স্ক্রিপ্টটি (প্রতিস্থাপন , কোণ বন্ধনী এবং সমস্ত কিছু চালনা > outputকরুন a একটি ফাইল ডাম্প তৈরি করতে আপনি সর্বদা প্রান্তে যুক্ত করতে পারেন।

diff --suppress-common-lines <(sed 's/ .*//' <manifest file>) <(dpkg --get-selections | sed 's/[ \t].*//') | grep '>' | sed 's/[>] //'

1

ধন্যবাদ গাইকোসর, দুর্দান্ত কোড। আমি এটি ব্যবহার করেছি তবে এটি কীভাবে কাজ করবে তা নির্ধারণ করতে কিছুটা সময় নিয়েছিল। আমি এটি উবুন্টু ১১.১০ এ কীভাবে করেছি — এটি ব্যাশ টার্মিনালে কাজ করে:

comm -13 \
  <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort) \
  <(comm -23 \
    <(dpkg-query -W -f='${Package}\n' | sed 1d | sort) \
    <(apt-mark showauto | sort) \
  ) > user-installed-packages

তারপরে প্রতিটি লাইনে একটি ট্যাব \t— এবং যুক্ত করতে install:

sed 's/$/\tinstall/' user-installed-packages >uip

তারপরে নতুন মেশিনে:

sudo dpkg --set-selections < uip

এবং প্যাকেজ ইনস্টল করতে:

sudo apt-get dselect-upgrade

0

এটি করার আরেকটি উপায় হ'ল আপনার "কার্য" এর উপর ভিত্তি করে কি ইনস্টল করা হয়েছে তা নির্ধারণ করা যা আপনার প্রাথমিক প্রয়োজনীয়তা অনুসারে ইনস্টল করতে বেস প্যাকেজগুলি নির্ধারণ করে।

tasksel --list-tasks

খুব কমপক্ষে আপনি চাইতেন server। তবে আপনি আরও কিছু বেছে নিতে পারেন। আপনি যে সমস্ত কাজ ইনস্টল করেছেন সেগুলির জন্য, আপনি যে প্যাকেজগুলি ইনস্টল করেছেন তার একটি তালিকা পেতে পারেন যা আমার ইনস্টলেশনটিতে আমি যা বেছে নিয়েছি তার জন্য নিম্নলিখিত কমান্ডটি সমস্ত কিছু এক লাইনে (স্পষ্টতার জন্য ভেঙে ফেলা) করে?

(tasksel --task-packages server ; \
 tasksel --task-packages openssh-server ; \
 tasksel --task-packages lamp-server) | sort | uniq

উপরের দিকে একটি জেনেরিক পদ্ধতি হ'ল:

(for a in $( tasksel --list-tasks | grep "^i" | awk '{ print $2 }' ) ; \
 do tasksel --task-packages $a; done) | sort | uniq

apt-cache depends --installed -i --recurse <packagename> | grep -v "^ "টাস্কে সংজ্ঞায়িত সমস্ত প্যাকেজগুলির দ্বারা ব্যবহৃত নির্ভরতাগুলির তালিকা পেতে এখন ব্যবহার করুন । এটি নিম্নলিখিত হিসাবে এক লাইনে করা যেতে পারে

apt-cache depends --installed -i --recurse \
     $(for a in $( tasksel --list-tasks | \
                   grep "^i" | \
                   awk '{ print $2 }' ) ; \
       do tasksel --task-packages $a; done) | grep -v "^ " | sort | uniq

নিম্নলিখিতটিতে আপনার সিস্টেমে ইনস্টল করা সমস্ত প্যাকেজ তালিকাভুক্ত রয়েছে (নির্ভরতা সহ নয়)।

dpkg --get-selections | grep "[[:space:]]install" | awk '{print $1}'

commকেবলমাত্র দ্বিতীয় তালিকায় রয়েছে সেগুলি সন্ধানের জন্য এখন কমান্ডটি ব্যবহার করুন (উদাহরণস্বরূপ, উভয় ফাইল এবং কেবলমাত্র প্রথম ফাইলটিতে যা রয়েছে তা উপেক্ষা করুন)

comm -13 <(apt-cache depends --installed -i --recurse \
              $(for a in $( tasksel --list-tasks | \
                            grep "^i" | \
                            awk '{ print $2 }' ) ; \
                do tasksel --task-packages $a; done) | grep -v "^ " | sort ) \
         <( dpkg --get-selections | grep "[[:space:]]install" | \
            awk '{print $1}' | sort)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.