विशेष घटक (गैर-मुक्त, कंट्रीब) से स्थापित सभी सॉफ्टवेयर की सूची बनाएं


12

क्या डेबियन के माध्यम से सभी सॉफ्टवेयर non-freeऔर contribसॉफ्टवेयर को सूचीबद्ध करने का एक तरीका है apt?

/etc/apt/sources.list इस प्रकार है

deb http://ftp.us.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.us.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

# wheezy-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ wheezy-updates main
deb-src http://ftp.us.debian.org/debian/ wheezy-updates main

मैंने जोड़ा non-freeऔर contribवर्षों पहले क्योंकि मुझे अपने वीडियो-कार्ड के लिए एक गैर-मुक्त ड्राइवर की आवश्यकता थी, जिसे अब एक नए के साथ बदल दिया गया है जिसे गैर-मुक्त ड्राइवर की आवश्यकता नहीं है। मैं गैर-मुक्त सामान से छुटकारा पाना चाहता हूं, लेकिन मुझे डर है कि मैंने उन वर्षों में अन्य गैर-मुक्त सॉफ़्टवेयर स्थापित किए होंगे जिन्हें मैं अनइंस्टॉल नहीं कर सकता।


जवाबों:


15
  • dpkg-query -W -f='${Section}\t${Package}\n' | grep ^non-free
  • aptitude search '~i ?section(non-free)'

Section गैर-मुक्त पथ से सब कुछ के लिए गैर-मुक्त / ... होगा।

[नोट] gcc डॉक्स के लिए ...

 This documentation is licensed under the terms of the GNU Free
 Documentation License, and contains invariant sections, so it can't be
 part of Debian main.

(मैं इसके बारे में भी सोचता था, लेकिन जब तक यह उल्लेख नहीं किया गया था, तब तक चेक करने की जहमत नहीं उठाई।)


दोनों ने अलग-अलग परिणाम निकाले ( pastebin.com/rAhYHTk8 )। NVIDIA सामान चालक है, इसलिए dpkg सही लगता है! Upvoted। मुझे आश्चर्य है कि वहाँ क्या gcc-doc कर रहा है।
एलेक्स

NVIDIA का सामान पहले ही हटा दिया गया था, उपयुक्त ने इसे सूचीबद्ध किया क्योंकि यह .deb या कुछ और रखता था। मुझे बस एक बात याद है कि मेरे पास गैर-मुक्त है जो सूचीबद्ध नहीं था: dpkg -l | grep -i nonfreeपरिणाम flashplugin-nonfree। मुझे आश्चर्य है कि यह योग्यता से सूचीबद्ध नहीं था और अगर यह वास्तव में गैर-मुक्त से सब कुछ सूचीबद्ध कर रहा है।
एलेक्स

2
क्योंकि यह कंट्रिब में है: डेबियन / पूल / कंट्रीब / एफ / फ्लैशप्लगिन-नॉनफ्री ( Section: contrib/web)
रिकी बीम

1
दोनों वर्गों के लिए एक-लाइनर है dpkg-query -W -f='${Section}\t${Package}\n' | sort | egrep ^contrib\|^non-free
GKFX

के बारे में dpkg-query -W -f='${Section}\t${Package}\n': Sectionघटकों को प्रदर्शित नहीं करता है। (कम से कम, यह नहीं मेरे लिए उबंटू 18.04 पर करता है।) एक उदाहरण घटक हो सकता है main, contribया non-free। जबकि वर्गों तरह बातें कर रहे हैं: admin, gnome, utils, या x11
mpb

6

एक प्रोग्राम है जिसे VRMS(एक वर्चुअल रिचर्ड एम। स्टालमैन) कहा जाता है, जो एक संक्षिप्त सारांश में आपके सिस्टम पर सभी गैर-मुक्त सॉफ़्टवेयर की रिपोर्ट करेगा। रेपो में इसकी और आप इसे apt;-) के माध्यम से स्थापित कर सकते हैं


2
यह उल्लेख के लायक है vrmsखुद को कहते हैं /etc/cron.monthly। जब मुझे इंस्टॉल करने के एक महीने बाद वर्चुअल स्टालमैन का एक मेल मिला तो मुझे सुखद आश्चर्य हुआ।
एलेक्स

2

मेरे पास कुछ साल पहले एक समान 'आग्रह' था और यह निर्धारित नहीं कर सकता था कि पैकेज डाउनलोड करने के बाद सिस्टम पर मूल पैकेज की जानकारी रखी गई है। मुझे नहीं लगता कि यह जानकारी उपलब्ध है dpkg

तो मैंने जो समाप्त किया वह एक साफ वर्चुअल मशीन को सेटअप करना था, उपयुक्त सेटअप करना /etc/apt/sources.listऔर इसके द्वारा उत्पन्न पूरी सूची को स्थापित करना:

dpkg --get-selections | fgrep -v deinstall | cut -s -f 1

वे पैकेज जो इंस्टॉल नहीं होंगे (मैंने केवल कुछ समय बचाने के लिए डाउनलोड किया था apt-get -d)।

आप apt-get --root-directory=some_dirअस्थायी रूप से अपने को बदलने के बाद का उपयोग करके एक समान काम करने में सक्षम हो सकते हैं sources.list, लेकिन मुझे यकीन नहीं होगा कि यह आपके वर्तमान इंस्टॉल डेटाबेस का उपयोग करता है और बस पैकेज को वहां ले जाता है। इस तरह के प्रयोग के लिए एक वीएम ज्यादा सुरक्षित है। मेरे पास आमतौर पर VM के रूप में मेरे वर्तमान लिनक्स की एक साफ बुनियादी स्थापना है, इसलिए मुझे केवल यह क्लोन करना है (ऐसा नहीं है कि VM पर लिनक्स स्थापित करने में इतना समय लगता है)।


अच्छा "समाधान"। मेरे पास वर्तमान में इसके लिए डिस्क स्थान नहीं है, लेकिन मुझे लगता है कि उपयुक्त पहले उन पैकेजों को प्रदर्शित करेगा जो नहीं मिले थे (इसलिए गैर-मुक्त हैं), सही?
एलेक्स

@ अलेक्स हां जो सही है। यह जवाब से गायब है। लेकिन रिकी का दृष्टिकोण तब तक बेहतर है जब तक कि संभावना नहीं थी और एक पैकेज वास्तव में एक रेपो से दूसरे में समय के साथ स्थानांतरित हो गया (और आप अद्यतित नहीं हैं या पैकेज ने संस्करण संख्या नहीं बदली है)।
टिमो

0

यात्रा उबंटू पूछो । यहाँ कमांड लाइन:

FILTER=non-free TMP_DIR=$(mktemp -d) && {
  dpkg -l | grep ^ii | cut -f 3 -d' ' | cut -f 1 -d : | sort | uniq > ${TMP_DIR}/pkg_installed.list
  cat /var/lib/apt/lists/*_${FILTER}_*Packages | grep "^Package:"  | sort | uniq | cut -d' ' -f2 > ${TMP_DIR}/pkg_filtered.list
  comm -12 ${TMP_DIR}/pkg_installed.list ${TMP_DIR}/pkg_filtered.list
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.