শুধু কোড
aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currentlyinstalled.txt
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest \
| cut -f1 | sort -u > defaultinstalled.txt
comm -23 currentlyinstalled.txt defaultinstalled.txt
ব্যাখ্যা
এই সমস্যাটি সম্পর্কে ভাবার একটি উপায় হ'ল এটিকে তিন ভাগে বিভক্ত করা:
- নির্ভরতা হিসাবে ইনস্টল করা প্যাকেজগুলির তালিকা কীভাবে পাব?
- আমি কীভাবে ডিফল্টরূপে ইনস্টল হওয়া প্যাকেজগুলির একটি তালিকা পেতে পারি?
- এই দুটি তালিকার মধ্যে আমি কীভাবে পার্থক্য পেতে পারি?
নির্ভরতা হিসাবে ইনস্টল করা প্যাকেজগুলির তালিকা কীভাবে পাব?
নিম্নলিখিত কমান্ডটি আমার সিস্টেমে কাজ করে বলে মনে হচ্ছে:
$ aptitude search '~i !~M' -F '%p' --disable-columns | sort -u > currentlyinstalled.txt
গিলস প্রশ্নের মন্তব্য হিসাবে পোস্ট করা লিঙ্কগুলিতে অনুরূপ পন্থাগুলি পাওয়া যাবে। কিছু সূত্র দাবি করে যে এটি কেবল তখনই কাজ করবে যদি আপনি প্যাকেজগুলি ইনস্টল করার জন্য প্রবণতা ব্যবহার করেন; যাইহোক, আমি প্যাকেজগুলি ইনস্টল করার জন্য প্রায়শই কখনও প্রবণতা ব্যবহার করি না এবং এটি এখনও কার্যকর হয়েছে found --disable-columns
প্রতিরোধ ঐ খালি যে তুলনা নিচের রোধ করা যাবে সাথে প্যাকেজ নামের প্যাডিং লাইন থেকে অ্যাপটিচিউড। | sort -u
প্রকারের ফাইল এবং সদৃশ সরিয়ে ফেলা হয়। এটি চূড়ান্ত পদক্ষেপটি আরও সহজ করে তোলে।
আমি কীভাবে ডিফল্টরূপে ইনস্টল হওয়া প্যাকেজগুলির একটি তালিকা পেতে পারি?
দ্রষ্টব্য: এই বিভাগটি এমন একটি 'ভুল পথ' দিয়ে শুরু হবে যা আমি মনে করি চিত্রিত। কোডের দ্বিতীয় অংশটি হ'ল এটি কাজ করে।
এটি কিছুটা কৌশলযুক্ত। আমি প্রথমে ভেবেছিলাম যে মেটা-প্যাকেজগুলি উবুন্টু-ন্যূনতম, উবুন্টু-স্ট্যান্ডার্ড, উবুন্টু-ডেস্কটপ এবং বিভিন্ন লিনাক্স কার্নেল সম্পর্কিত প্যাকেজগুলির নির্ভরতা হ'ল একটি ভাল আনুমানিকতা হবে। গুগল অনুসন্ধানে কয়েকটি ফলাফল এই পদ্ধতির ব্যবহার করে বলে মনে হয়েছে। এই নির্ভরতাগুলির একটি তালিকা পেতে, আমি প্রথমে নিম্নলিখিতগুলি চেষ্টা করেছি (যা কার্যকর হয়নি):
$ apt-cache depends ubuntu-desktop ubuntu-minimal ubuntu-standard linux-* | awk '/Depends:/ {print $2}' | sort -u
এটি মনে করে এমন কিছু প্যাকেজ ছেড়ে গেছে যা আমি জানি ডিফল্টরূপে আসতে হয়েছিল। আমি এখনও বিশ্বাস করি যে কেউ যদি মেটাপ্যাকেজগুলির সঠিক তালিকা তৈরি করে তবে এই পদ্ধতিটি কাজ করা উচিত।
তবে, মনে হয় উবুন্টু মিররগুলিতে একটি "ম্যানিফেস্ট" ফাইল থাকে যা ডিফল্ট ইনস্টলের সমস্ত প্যাকেজ ধারণ করে। উবুন্টু 12.04.3 এর জন্য ম্যানিফেস্টটি এখানে রয়েছে:
http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest
যদি আপনি এই পৃষ্ঠাটি (বা আপনার কাছাকাছি একটি আয়না পৃষ্ঠা) অনুসন্ধান করেন:
http://mirror.pnl.gov/releases/precise/
আপনার ব্যবহার করা সংস্করণ এবং আর্কিটেকচারের সাথে মিলে যায় এমন "। ম্যানিফেস্ট" ফাইলটি সন্ধান করা উচিত। কেবলমাত্র প্যাকেজের নামগুলি বের করতে আমি এটি করেছি:
wget -qO - http://mirror.pnl.gov/releases/precise/ubuntu-12.04.3-desktop-amd64.manifest | cut -f1 | sort -u > defaultinstalled.txt
তালিকাটি সম্ভবত ইতিমধ্যে বাছাই করা হয়েছে এবং অনন্য ছিল, তবে আমি নিশ্চিত হতে চেয়েছিলাম যে পরবর্তী পদক্ষেপটি আরও সহজ করার জন্য এটি সঠিকভাবে সাজানো হয়েছে। আমি তখন আউটপুটটি ভিতরে রাখি defaultinstalled.txt
।
এই দুটি তালিকার মধ্যে আমি কীভাবে পার্থক্য পেতে পারি?
এটি ইউনিক্সের মতো বেশিরভাগ সিস্টেমে এটি করার জন্য অনেক সরঞ্জাম রয়েছে বলে এটি সবচেয়ে সহজ অংশ। comm
টুল এই কাজ করতে অনেক উপায় এগুলির মধ্যে একটি:
comm -23 currentlyinstalled.txt defaultinstalled.txt
এটি প্রথম ফাইলের জন্য স্বতন্ত্র লাইনের তালিকা মুদ্রণ করা উচিত। সুতরাং, এটি ইনস্টল করা প্যাকেজগুলির একটি তালিকা মুদ্রণ করা উচিত ডিফল্ট ইনস্টল নয়।
aptitude search '~i!~M' -F %p
না?