কোনও উবুন্টু সিস্টেমে ব্যবহারকারীর দ্বারা ইনস্টল হওয়া সমস্ত প্যাকেজগুলির তালিকা পাওয়ার কোনও উপায় আছে কি না?
(ধারণাটি হ'ল একটি বিস্তৃত তালিকা পাবেন যা পরিষ্কার উবুন্টু ইনস্টলেশনতে একই প্যাকেজ ইনস্টল করতে ব্যবহার করা যেতে পারে)
কোনও উবুন্টু সিস্টেমে ব্যবহারকারীর দ্বারা ইনস্টল হওয়া সমস্ত প্যাকেজগুলির তালিকা পাওয়ার কোনও উপায় আছে কি না?
(ধারণাটি হ'ল একটি বিস্তৃত তালিকা পাবেন যা পরিষ্কার উবুন্টু ইনস্টলেশনতে একই প্যাকেজ ইনস্টল করতে ব্যবহার করা যেতে পারে)
উত্তর:
এই ফাইলগুলি দেখুন,
/var/log/installer/initial-status.gz
' - আপনার প্রাথমিক ইনস্টলেশন
/var/log/dpkg.log
' আপডেটের সময়রেখা (এটি আপনি চান)/var/log/apt/term.log
' - apt
আপনার সিস্টেমে জিনিস আপডেট হয়েছে/var/cache/apt/archives/'
ধারণ করবেdeb
আপডেট: নতুন ইনস্টলগুলির সঠিক তালিকার জন্য নিম্নলিখিত দুটি পদক্ষেপ ব্যবহার করুন:
grep -w install /var/log/dpkg.log > full-list.log
/var/log/installer/initial-status.gz
টাইমস্ট্যাম্পের বাইরে লাইনগুলি দেখুনযেহেতু আপনি এই প্যাকেজগুলির সাহায্যে অন্য সিস্টেমে একটি পরিষ্কার ইনস্টলেশন পেতে চান, আপনি এমনকি 'ক্যাশে / অ্যাপ্লিকেশন / সংরক্ষণাগারগুলি' থেকে নতুন ইনস্টলেশনের পথে 'দেবে' ফাইলগুলি অনুলিপি করতে এবং সেগুলিকে একটি শটে ইনস্টল করতে পারেন (ডাউনলোড না করেই) তাদের আবার)।
কেবল গ্রিনগুলির জন্য, আমি একটি ওয়ান-লাইনার (স্পষ্টতার জন্য এখানে বিভক্ত) একসাথে রেখেছি যা ম্যানুয়ালি ইনস্টল হওয়া প্যাকেজগুলি সনাক্ত করে , প্রাথমিকভাবে ইনস্টল হওয়া এবং স্বয়ংক্রিয়ভাবে ইনস্টল হওয়া কোনও প্যাকেজগুলি বাদ দিয়ে:
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 ইনস্টল সময় অনুসারে বাছাই করে এবং সিস্টেম ইনস্টলের সময়ের আগে সমস্ত কিছু মুছে ফেলার মাধ্যমে এটি যত্ন করে। শেলের দুর্দান্ত (আব) ব্যবহার!
উপরের তথ্যের উপর ভিত্তি করে, আমি ম্যানুয়ালি ইনস্টল করা প্যাকেজগুলির তালিকা করতে একটি পাইথন স্ক্রিপ্ট লিখেছিলাম। এই লিঙ্কটি দেখুন ।
এটির জন্য নির্দ্বিধায় আমি যদিও এটির জন্য কোনও দায়বদ্ধতা গ্রহণ করি না। যাইহোক, প্রতিক্রিয়া এবং পরামর্শ সর্বদা স্বাগত।
সম্পর্কিত প্রশ্নটির জন্য আমার উত্তর এখানে দেখুন : আমি কীভাবে আমার ডেবিয়ান সিস্টেমে ইনস্টল করা সমস্ত প্যাকেজের তালিকা প্রদর্শন করতে পারি? । প্রশ্নের অন্যান্য উত্তরগুলির মধ্যে কয়েকটিতে এ জাতীয় তালিকা পাওয়ার জন্য দুর্দান্ত পরামর্শ রয়েছে।
এই প্রশ্নটিকে একটি সদৃশ হিসাবে চিহ্নিত করা উচিত কারণ আগের প্রশ্নটিও এই প্রশ্নটি কভার করে, তবে এই প্রশ্নটি নিজের পক্ষে দাঁড় করানো কার্যকর হবে যাতে এটি সন্ধান করা সহজ।
ধরে নিচ্ছি আপনার একটি সুসংগত ইতিহাস আছে এবং প্রবণতা ব্যবহার করুন:
history | grep -e "^..... aptitude install"
আপনি যে প্যাকেজগুলি প্রবণতা ইনস্টল করে ইনস্টল করেছেন কেবল তার তালিকা তৈরি করবে ... ডু
এটি হ্যাক-জব, তবে এটি পুরোপুরি কার্যকর হয়।
প্রথমে 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/[>] //'
ধন্যবাদ গাইকোসর, দুর্দান্ত কোড। আমি এটি ব্যবহার করেছি তবে এটি কীভাবে কাজ করবে তা নির্ধারণ করতে কিছুটা সময় নিয়েছিল। আমি এটি উবুন্টু ১১.১০ এ কীভাবে করেছি — এটি ব্যাশ টার্মিনালে কাজ করে:
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
এটি করার আরেকটি উপায় হ'ল আপনার "কার্য" এর উপর ভিত্তি করে কি ইনস্টল করা হয়েছে তা নির্ধারণ করা যা আপনার প্রাথমিক প্রয়োজনীয়তা অনুসারে ইনস্টল করতে বেস প্যাকেজগুলি নির্ধারণ করে।
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)