아치 리눅스에서 팩맨에 대한 선택적 종속성 나열

아치 리눅스에서 팩맨에 대한 선택적 종속성 나열

저는 아치 리눅스를 사용하고 있습니다.

설치된 모든 패키지의 선택적 종속성을 나열하는 방법이 있습니까? 그렇다면 이 목록을 필터링하여 누락된(설치되지 않은) 패키지만 볼 수 있습니까?

답변1

AUR 저장소(aur/pacdep)에는 좋은 유틸리티가 있습니다.

pacdep에는 많은 옵션이 있습니다 - 한 가지 예를 들자면 "thunar-archive-plugin" 옵션 패키지를 찾으십시오:

> pacdep -oppp thunar-archive-plugin
[...]
Optional dependencies:    6.16 MiB
  extra/file-roller     3.89 MiB
  extra/kdeutils-ark    1.12 MiB
  community/xarchiver   1.16 MiB
[...]

위 출력은 선택적 패키지가 설치되지 않았음을 의미합니다. "xarchiver"를 설치한 후 출력은 다음과 같습니다.

[...]
Optional dependencies:    6.16 MiB
 local:    1.16 MiB
  xarchiver            1.16 MiB
 sync:     5.01 MiB
  extra/file-roller    3.89 MiB
  extra/kdeutils-ark   1.12 MiB
[...]

이 답변을 찾았습니다(1부).
http://mywaytoarch.tumblr.com/post/34979742718/easily-list-package-dependentities

답변2

당신은 그것을 사용할 수 있습니다확장하다apm 데이터를 쿼리합니다(pacman 데이터베이스).

그것은 다음과 같습니다:

awk 'NF>=2' <(expac "%n %O") > optdeps

컴퓨터에 설치된 모든 패키지 목록이 인쇄되며, optdepends각 패키지 목록은 optdeps설치된 optdependents 패키지 목록을 기준으로 정렬할 수 있습니다.

바라보다man expac전체 옵션 목록을 확인하세요.

답변3

이렇게 하면 트릭을 수행할 수 있습니다.

comm -23 <(expac -l"\n" "%o" | sort -u) <(expac -l"\n" "%n\n%S" | sort -u)

첫 번째 입력에는 comm모든 선택적 종속성이 나열되고, 두 번째 입력에는 설치된 모든 패키지와 해당 "제공된" 속성이 나열됩니다. 두 목록은 모두 정렬되어 있으며 각 요소를 한 번만 포함합니다 sort -u. 그런 다음 첫 번째 목록에는 포함되어 있지만 두 번째 목록에는 포함되지 않은 행만 표시합니다.

(@Archemar의 제안을 통합하도록 편집됨)

답변4

@DarkHeart의 솔루션이 실제로 작동하지 않는다는 점에 유의해야 하지만 이는 작동하는 솔루션을 만들도록 영감을 주었습니다. (색은 없지만)

나는 그것을 사용하고 있다패키지 쿼리, @jasonwryan이 제안한 expac 대신 유사한 도구입니다. 이미 설치했기 때문입니다(yaourt의 종속성입니다). expac을 사용하도록 변경하는 것은 간단해야 합니다.

모든 선택적 종속성 목록은 주로 package-query를 호출하여 수행됩니다. 첫 번째 for 루프는 설명을 제거하므로 선택적 종속성의 패키지 이름만 남습니다. 두 번째 for 루프는 두 번째 줄에 결과를 인쇄하기 전에 첫 번째 줄에서 설치된 종속성을 제거합니다.

#!/usr/bin/perl
use strict;
use warnings;

my %deps;
for (`package-query -Q -f'%n %O'`) {
    $deps{ (/^(\S+)/)[0] } = [/(\S+):/g];
}
my @pkgs = keys %deps;
for my $pkg (@pkgs) {
    my @missing_deps = grep { !($_ ~~ @pkgs) } @{ $deps{$pkg} };
    print "$pkg => @missing_deps\n" if @missing_deps;
}

관련 정보