![시각적(ASCII) Debian 종속성 트리를 터미널로 출력하시겠습니까?](https://linux55.com/image/49479/%EC%8B%9C%EA%B0%81%EC%A0%81(ASCII)%20Debian%20%EC%A2%85%EC%86%8D%EC%84%B1%20%ED%8A%B8%EB%A6%AC%EB%A5%BC%20%ED%84%B0%EB%AF%B8%EB%84%90%EB%A1%9C%20%EC%B6%9C%EB%A0%A5%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
이것이 수퍼유저 문제인지 아니면 UnixLinux 문제인지는 잘 모르겠지만 여기서 시도해 보겠습니다.
최근에 나는 다음과 같은 사실을 발견했습니다.
#710689 - 적성 : 트리에서 유니 코드 문자 사용 - 데비안 버그 보고서 로그
aptitude가 종속성 목록의 트리에 유니코드 문자를 사용했다면 좋을 것입니다. 예를 들어 다음과 같습니다.
--\ Depends (3) --- libc-dev-bin (= 2.17-3) --- libc6 (= 2.17-3) --- linux-libc-dev --\ Suggests (2) --- glibc-doc (UNSATISFIED) --\ manpages-dev
...
aptitude
...저는 생각했습니다. 와, 저는 ASCII 아트 트리 출력을 정말 좋아합니다. 그렇게 하는 것이 가능한지 몰랐습니다 ! 그래서 한 시간 동안 명령줄 스위치를 조작하기 시작했습니다 aptitude
. 단순히 해당 출력을 얻을 수 없습니까? 그래서 나의 초기 질문은 - 이 출력은 애초에 어디서 나오는가?입니다. !
잠시 후 나는 내 시스템에 aptitude
최종 심볼릭 링크가 이라는 것을 깨달았습니다. 마침내 인터페이스 가 있다는 것을 /usr/bin/aptitude-curses
깨달았습니다 !aptitude
curses
:/
aptitude
따라서 매개변수 없이 실행 하게 됩니다 . curses
인터페이스가 시작되고 다음과 같은 내용을 볼 수 있습니다.
...분명히 해당 ASCII 트리 문자는 저주 인터페이스에서 나온 것입니다.
그래서 저는 궁금합니다. "시각적" ASCII 트리를 출력하지만 패키지의 실제 종속성을 포함하는 데비안/apt 도구가 있습니까?
나는 대해 알고있다Debtree - 패키지 종속성 그래프(반품소프트웨어 추천 - 패키지 종속성을 시각적으로 표시하는 방법은 무엇입니까? -우분투에 물어보세요); 그러나 나는 디렉토리 트리와 유사한 것을 터미널에 갖고 싶습니다(s에 의해 생성된 s의 "순서가 지정되지 않은" [노드 위치 측면에서] 그래프보다는 debtree
).graphviz
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
인터페이스는 설치된 정보만 표시하며 추가 종속성으로 확장되지 않습니다.
따라서 질문은 - 아래 의사 코드와 같은 터미널 문자로 종속성 트리 다이어그램을 생성할 수 있는 도구가 있습니까?
$ 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
--- ...
...
답변1
bash 스크립트로 할 수 있습니다
소스 코드: "apt-rdependents-tree"
https://gist.github.com/damphat/6214499
달리기
# 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