Que pacotes recomendaram 'Missing Recommends'?

5

O Gerenciador de Pacotes Synaptic possui um filtro personalizado "Recomendados em falta". Existe uma maneira de descobrir quais pacotes instalados no meu sistema recomendaram os pacotes listados neste filtro?

    
por Rohit Agarwal 12.05.2012 / 12:14

4 respostas

3

O Aptitude pode realizar algumas pesquisas bastante interessantes

Isso mostrará todos os pacotes que têm recomendações que não estão satisfeitos:

aptitude search '?installed?broken-recommends'

Para restringi-lo a um pacote recomendado específico:

aptitude search '?installed?broken-recommends(PACKAGE)'
    
por tumbleweed 12.04.2013 / 13:43
2

Tanto quanto sei, não há uma maneira fácil de descobrir qual pacote recomenda um outro pacote específico.

Aqui está um script simples para criar uma lista de qual pacote recomenda ou sugere que outro pacote:

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

Nota: o script leva alguns para ser executado. Além disso, a saída é muito longa, então é muito provável que você queira capturar a saída em um arquivo:

$ whatrecommends.sh > whatrecommends.txt

Exemplo de saída:

...
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
...

Ao alterar os parâmetros de sort no final do script, você pode alterar a ordem de classificação da saída.

    
por lesmana 26.06.2012 / 13:36
2

Com base na resposta do tumbleweed, criei um script que usa pesquisas do aptitude para criar os pacotes que recomendam um pacote ausente.

No entanto, não fornece a mesma lista completa como sináptico. Não faço ideia do porquê.

O script

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

Saída de amostra

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
    
por Zombaya 14.04.2013 / 23:28
2

Aqui, do meu jeito - relatório por falta recomenda:)

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 '^ '
    
por mmm4m5m 03.11.2013 / 15:36