आउटपुट विजुअल (ASCII) डेबियन डिपेंडेंसी ट्री टू टर्मिनल?


19

मुझे यकीन नहीं है कि यह एक सुपरयूजर या यूनिक्सलाइन सवाल है, लेकिन मैं यहाँ कोशिश करूँगा ...

हाल ही में, मुझे यह मिला:

# 710689 - योग्यता: पेड़ों में यूनिकोड चरित्र का उपयोग करें - डेबियन बग रिपोर्ट लॉग

यह अच्छा होगा जब अभिरुचि निर्भरता सूचियों में पेड़ों के लिए यूनिकोड वर्णों का उपयोग करेगी, जैसे कि:

--\ Depends (3)
   --- libc-dev-bin (= 2.17-3)
   --- libc6 (= 2.17-3)
   --- linux-libc-dev
 --\ Suggests (2)
   --- glibc-doc (UNSATISFIED)
   --\ manpages-dev

...

... और मैंने सोचा - वाह, मैं वास्तव में उस ASCII- आर्ट ट्री आउटपुट को पसंद करता हूं, यह पता नहीं था कि aptitudeवह ऐसा कर सकता है! इसलिए, मैं aptitudeकमांड लाइन स्विच के साथ एक घंटे के लिए गड़बड़ करना शुरू कर देता हूं - और मैं बस उस आउटपुट को प्राप्त नहीं कर सकता हूं? तो मेरा शुरुआती सवाल था - वह आउटपुट पहली जगह में कहाँ से आता है ?!

थोड़ी देर के बाद, मुझे एहसास हुआ कि मेरे सिस्टम पर, aptitudeअंततः सहानुभूति है /usr/bin/aptitude-curses; और मुझे अंत में एहसास हुआ कि aptitudeएक cursesइंटरफ़ेस है!:/

इसलिए, मैं अंत में aptitudeबिना किसी तर्क के चलता हूं - और इसलिए cursesइंटरफ़ेस शुरू होता है, और मैं कुछ इस तरह देख सकता हूं:

योग्यता-शाप टर्मिनल

... तो जाहिर है, उन ASCII पेड़ पात्रों शाप इंटरफ़ेस से आते हैं।

तो मैं सोच रहा था - क्या कोई डेबियन / एप्ट टूल है, जो इस तरह के "दृश्य" ASCII पेड़ का उत्पादन करेगा - लेकिन पैकेज की वास्तविक निर्भरता के साथ?

मैं ऋणी के बारे में जानता हूं - पैकेज निर्भरता ग्राफ ( सॉफ्टवेयर सिफारिश भी - पैकेज की निर्भरता को कैसे प्रदर्शित करें? - उबंटू पूछें ); लेकिन मुझे टर्मिनल में कुछ होना चाहिए, निर्देशिका पेड़ (नोड की स्थिति के मामले में [अव्यवस्थित "[के बजाय] ग्राफ से मिलता-जुलता है debtree, graphviz's द्वारा उत्पन्न dot)।

मैंने यह भी देखा है कि क्या कुछ ऐसा है जो निर्भरता को नेत्रहीन, एक पेड़ की तरह दिखाएगा? , जो अनुशंसा करता है:

$ apt-rdepends aptitude
Reading package lists... Done
Building dependency tree       
Reading state information... Done
aptitude
  Depends: libapt-pkg4.10
  Depends: libboost-iostreams1.42.0 (>= 1.42.0-1)
  Depends: libc6 (>= 2.4)
  Depends: libcwidget3
  Depends: libept1
  Depends: libgcc1 (>= 1:4.1.1)
  Depends: libncursesw5 (>= 5.7+20100313)
  Depends: libsigc++-2.0-0c2a (>= 2.0.2)
  Depends: libsqlite3-0 (>= 3.7.3)
  Depends: libstdc++6 (>= 4.5)
  Depends: libxapian22
libapt-pkg4.10
libboost-iostreams1.42.0
  Depends: libbz2-1.0
  Depends: libc6 (>= 2.3.6-6~)
  Depends: libgcc1 (>= 1:4.1.1)
  Depends: libstdc++6 (>= 4.2.1)
  Depends: zlib1g (>= 1:1.1.4)
...

... जो अच्छा है, क्योंकि यह आवश्यक पैकेज के पहले निर्भरता को सूचीबद्ध करता है; और फिर पहले-स्तर की निर्भरता पैकेजों की निर्भरताएं, और इसी तरह - लेकिन इसे एक पेड़ के रूप में कल्पना नहीं की जाती है (और वास्तव में, aptitude' cursesइंटरफ़ेस केवल निर्भरता नोड का विस्तार करते समय स्थापित जानकारी दिखाता है; यह आगे की निर्भरता में विस्तार नहीं करता है)।

तो, सवाल यह है कि - क्या कोई उपकरण है, जो टर्मिनल वर्णों के साथ एक निर्भरता ट्री ग्राफ का उत्पादन करेगा - जैसे, निम्न pseudocode में कहें:

$ pseudo-deb-graph --show-package="aptitude"

aptitude
  --- Depends: libapt-pkg4.10
  --\ Depends: libboost-iostreams1.42.0 (>= 1.42.0-1)
     --- Depends: libbz2-1.0
     --- Depends: libc6 (>= 2.4)
  --\ Depends: libc6 (>= 2.3.6-6~)
     --\ Depends: libc-bin (= 2.13-0ubuntu13)
        --- ...
     --\ Depends: libgcc1
        --- ...
     --\ Depends: tzdata
        --- ...
...

जवाबों:


23

आप इसे बैश स्क्रिप्ट के साथ कर सकते हैं

स्रोत कोड: "apt-rdepends-tree"

https://gist.github.com/damphat/6214499

Daud

# sudo apt-get install apt-rdepends
# save gist, above, as "apt-rdepends-tree"
# chmod +x apt-rdepends-tree
# ./apt-rdepends-tree gcc

आउटपुट इस तरह दिखता है:

# ./apt-rdepends-tree gcc
├─ gcc
│    ├─ cpp (>= 4:4.7.2-1)
│    └─ gcc-4.7 (>= 4.7.2-1)
└─ package-a
     ├─ package-b
     └─ package-c
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.