Arch Linuxでパックマンのオプションの依存関係を一覧表示する

Arch Linuxでパックマンのオプションの依存関係を一覧表示する

私はアーチLinuxを使用しています。

インストールされているすべてのパッケージのオプションの依存関係を一覧表示する方法はありますか?それでは、このリストをフィルタリングして、欠落している(インストールされていない)パッケージのみを表示できますか?

答え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各パッケージのリストはインストールされているoptdepsoptdependentsパッケージのリストに基づいてソートできます。

バラよりman expac完全なオプションのリストを確認してください。

答え3

これにより、トリックを実行できます。

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

最初の入力にはすべてのオプションのcomm依存関係が一覧表示され、2番目の入力にはインストールされているすべてのパッケージとその「提供された」属性が一覧表示されます。両方のリストは並べ替えられており、各要素は一度だけ含まれていますsort -u。その後、最初のリストには含まれていますが、2番目のリストには含まれていない行のみが表示されます。

(@Archemarの提案を統合するように編集されています)

答え4

@DarkHeartのソリューションが実際には機能しないことに注意する必要がありますが、これは動作するソリューションを作成することに触発されました。 (色はありませんが)

私はそれを使用していますパッケージクエリ、@jasonwryanが提案したexpacの代わりに同様のツールです。すでにインストールしているからです(yaourtの依存関係です)。 expacを使用するように変更するのは簡単です。

すべてのオプションの依存関係のリストは、主に package-query を呼び出して実行されます。最初のforループは説明を削除するため、オプションの依存関係のパッケージ名のみが残ります。 2番目のforループは、2行目に結果を印刷する前に、1行目でインストールされた依存関係を削除します。

#!/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;
}

関連情報