Synaptic Package Managerには、カスタムフィルター「Missing Recommendeds」があります。システムにインストールされているどのパッケージがこのフィルターにリストされているパッケージを推奨しているかを調べる方法はありますか?
Aptitudeはいくつかの かなり空想的な検索 を実行できます
これは、満たされていないRecommendsを持つすべてのパッケージを表示します:
aptitude search '?installed?broken-recommends'
特定の推奨パッケージに制限するには:
aptitude search '?installed?broken-recommends(PACKAGE)'
私が知る限り、どのパッケージが特定の他のパッケージを推奨するかを見つける簡単な方法はありません。
以下は、どのパッケージが他のどのパッケージを推奨または提案するかのリストを作成するための大まかなスクリプトです。
dpkg --get-selections | cut -f 1 | while read pkgname
do
apt-cache depends "$pkgname" | \
grep -E "Recommends|Suggests" | \
cut -b 3- | \
while read recommends
do
echo "$pkgname" "$recommends"
done
done | sort -k 3 -k 2 | column -t
注:スクリプトの実行には多少時間がかかります。また、出力は非常に長いため、出力をファイルにキャプチャすることをお勧めします。
$ whatrecommends.sh > whatrecommends.txt
出力のサンプル:
...
ubuntu-desktop Recommends: avahi-autoipd
avahi-daemon Suggests: avahi-autoipd
dhcp3-client Suggests: avahi-autoipd
libnss-mdns Suggests: avahi-autoipd
hplip Recommends: avahi-daemon
rhythmbox Recommends: avahi-daemon
ubuntu-desktop Recommends: avahi-daemon
libsane Suggests: avahi-daemon
pulseaudio-utils Suggests: avahi-daemon
sane-utils Suggests: avahi-daemon
system-config-printer-common Recommends: avahi-utils
bash Recommends: bash-completion
ubuntu-standard Recommends: bash-completion
ack-grep Suggests: bash-completion
bash Suggests: bash-doc
...
スクリプトの最後でsort
のパラメーターを変更することにより、出力のソート順を変更できます。
ここで、私の方法-不足している推奨事項のレポート:)
apt-cache --no-pre-depends --no-depends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances depends `dpkg --get-selections | grep '\sinstall$' | cut -f1` | grep -vf <(dpkg --get-selections | grep '\sinstall$' | cut -f1 | sed -e 's/^/ /' -e 's/\(:.*\|\)$/$/') | grep -B1 '^ '
タンブルウィードの答えに基づいて、aptitude検索を使用して、不足しているパッケージを推奨するパッケージを作成するスクリプトを作成しました。
ただし、シナプスと同じ完全なリストは提供されません。理由はわかりません。
#!/usr/bin/php
<?php
$list = Shell_exec("aptitude search '?broken-reverse-recommends(?installed)'");
preg_match_all("|^.{4}(.*) - (.*)$|mU", $list, $matches);
foreach ($matches[1] as $prog) {
$prog = trim($prog);
echo "$prog:\n";
$missing = Shell_exec("aptitude search '?installed?broken-recommends($prog)'");
preg_match_all("|^.{4}(.*) - (.*)$|mU", $missing, $mismatch);
foreach ($mismatch[1] as $missoft) {
echo "\tRecommended by: ".trim($missoft)."\n";
}
}
ecryptfs-utils:
Recommended by: adduser
firefox:
Recommended by: xubuntu-desktop
Recommended by: xul-ext-ubufox
firefox-gnome-support:
Recommended by: xubuntu-desktop
libatm1:
Recommended by: iproute