ऐसा करने का एक अन्य तरीका यह निर्धारित करना है कि आपके "कार्यों" के आधार पर क्या स्थापित किया गया है जो आपकी प्रारंभिक आवश्यकताओं के अनुसार स्थापित करने के लिए आधार पैकेज निर्धारित करता है।
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)