시각적(ASCII) Debian 종속성 트리를 터미널로 출력하시겠습니까?

시각적(ASCII) Debian 종속성 트리를 터미널로 출력하시겠습니까?

이것이 수퍼유저 문제인지 아니면 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깨달았습니다 !aptitudecurses:/

aptitude따라서 매개변수 없이 실행 하게 됩니다 . curses인터페이스가 시작되고 다음과 같은 내용을 볼 수 있습니다.

능력저주터미널

...분명히 해당 ASCII 트리 문자는 저주 인터페이스에서 나온 것입니다.

그래서 저는 궁금합니다. "시각적" ASCII 트리를 출력하지만 패키지의 실제 종속성을 포함하는 데비안/apt 도구가 있습니까?

나는 대해 알고있다Debtree - 패키지 종속성 그래프(반품소프트웨어 추천 - 패키지 종속성을 시각적으로 표시하는 방법은 무엇입니까? -우분투에 물어보세요); 그러나 나는 디렉토리 트리와 유사한 것을 터미널에 갖고 싶습니다(s에 의해 생성된 s의 "순서가 지정되지 않은" [노드 위치 측면에서] 그래프보다는 debtree).graphvizdot

나도 본 적 있어트리처럼 종속성을 시각적으로 표시할 수 있는 것이 있나요?, 다음을 권장합니다.

$ 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

관련 정보