मुझे यकीन नहीं है कि यह एक सुपरयूजर या यूनिक्सलाइन सवाल है, लेकिन मैं यहाँ कोशिश करूँगा ...
हाल ही में, मुझे यह मिला:
# 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
--- ...
...